complex<float>
描述可儲存皆為 float
類型之物件的有序對,第一個代表複數的實部,而第二個代表虛部。
語法
template <>
class complex<float> {
public:
constexpr complex(
float _RealVal = 0,
float _ImagVal = 0);
constexpr complex(
const complex<float>& complexNum);
constexpr complex(
const complex<double>& complexNum);
constexpr complex(
const complex<long double>& complexNum);
// rest same as class template complex
};
參數
_RealVal
要建構之複數實際部分的 型 float
別值。
_ImagVal
用於建構中複數虛部的 float
類型值。
complexNum
型別或long double
型double
別的複數,其實數和虛數部分用來初始化所建構之型float
別的複數。
傳回值
float
類型的複數。
備註
類別樣板複雜至類型複雜類別的 float
明確特製化,只與類別範本在所定義的建構函式中不同。 從轉換成 float
是隱含的,但從 轉換成的較不安全float
long double
,必須是 explicit
。double
使用 explicit
指派語法排除初始與型別轉換。
如需類別範本 complex
的詳細資訊,請參閱 複雜類別。 如需類別範本 complex
的成員清單,請參閱 。
範例
// complex_comp_flt.cpp
// compile with: /EHsc
#include <complex>
#include <iostream>
int main( )
{
using namespace std;
double pi = 3.14159265359;
// The first constructor specifies real & imaginary parts
complex <float> c1 ( 4.0 , 5.0 );
cout << "Specifying initial real & imaginary parts,\n"
<< " as type float gives c1 = " << c1 << endl;
// The second constructor initializes values of the real &
// imaginary parts using those of complex number of type double
complex <double> c2double ( 1.0 , 3.0 );
complex <float> c2float ( c2double );
cout << "Implicit conversion from type double to type float,"
<< endl << "gives c2float = " << c2float << endl;
// The third constructor initializes values of the real &
// imaginary parts using those of a complex number
// of type long double
complex <long double> c3longdouble ( 3.0 , 4.0 );
complex <float> c3float ( c3longdouble );
cout << "Explicit conversion from type long double to type float,"
<< endl << "gives c3float = " << c3float << endl;
// The modulus and argument of a complex number can be recovered
double absc3 = abs ( c3float);
double argc3 = arg ( c3float);
cout << "The modulus of c3 is recovered from c3 using: abs ( c3 ) = "
<< absc3 << endl;
cout << "Argument of c3 is recovered from c3 using:"
<< endl << "arg ( c3 ) = "
<< argc3 << " radians, which is " << argc3 * 180 / pi
<< " degrees." << endl;
}
/* Output:
Specifying initial real & imaginary parts,
as type float gives c1 = (4,5)
Implicit conversion from type double to type float,
gives c2float = (1,3)
Explicit conversion from type long double to type float,
gives c3float = (3,4)
The modulus of c3 is recovered from c3 using: abs ( c3 ) = 5
Argument of c3 is recovered from c3 using:
arg ( c3 ) = 0.927295 radians, which is 53.1301 degrees.
*/
需求
標頭: <複雜>
命名空間:std