使用 valarray 定义可变数组有以下几种方法:
- double gpa[5] = { 3.1, 3.5, 3.8, 2.9, 3.3 };
- valarray<double> v1; /* 浮点数组,大小为0 ——① */
- valarray<int> v2( 8 ); /* 整型数组,大小为8 ——② */
- valarray<int> v3( 10, 8 ); /* 整型数组,大小为8,每个值初始化为10 ——③ */
- valarray<double> v4( gpa, 4 ); /* 浮点数组,大小为4,每个值初始化为数组 gpa 的前4个值 ——④ */
- valarray<int> v5( v3 ); /* 整型数组,同v3 ——⑤ */
当作为类中的元素的时候,生成构造函数的方法:
- class Student
- {
- private:
- typedef std::valarray<double> ArrayDb;
- std::string name;
- ArrayDb scores;
- …
- public:
- Student() : name( “ Null Student ” ), scores()
- {} /* ——① */
- explicit Student( const std::string & s ) : name( s ), scores()
- {} /* ——① */
- explicit Student( int n ) : name( “ Nully ” ), scores( n )
- {} /* ——② */
- Student( const std::string & s, int n ) : name( s ), scores( n )
- {} /* ——② */
- Student( const std::string & s, const ArrayDb & a ) : name( s ), scores( a )
- {} /* ——⑤ */
- Student( const char * str, const double * pd, int n ) : name( str ), scores( pd, n )
- {} /* ——④ */
- …
- };