构造 valarray 特定范围或与特定值的元素或作为 valarray 的另一个副本的另一 valarray 或子集。
valarray( );
explicit valarray(
size_t Count
);
valarray(
const Type& Val,
size_t Count
);
valarray(
const Type* Ptr,
size_t Count
);
valarray(
const valarray<Type>& Right
);
valarray(
const slice_array<Type>& SliceArray
);
valarray(
const gslice_array<Type>& GsliceArray
);
valarray(
const mask_array<Type>& MaskArray
);
valarray(
const indirect_array<Type>& IndArray
);
valarray(
valarray<Type>&& Right
);
valarray(
initializer_list<Type> IList
);
参数
Count
valarray中的元素个数。Val
用于初始化 valarray 中元素的值。Ptr
用于初始化 valarray 中元素的指针的值。Right
初始化新 valarray 的现有 valarray。SliceArray
元素值的 slice_array 用于初始化构造 valarray的元素。GsliceArray
元素值的 slice_array 用于初始化构造 valarray的元素。MaskArray
元素值的 slice_array 用于初始化构造 valarray的元素。IndArray
元素值的 slice_array 用于初始化构造 valarray的元素。IList
initializer_list 包含要复制的元素.
备注
第一个 (默认值) 构造函数初始化为空数组的对象。 接下来的三个构造函数每个都初始化数组 Count 的对象元素如下:
明确 valarray(size_t Count), 每个元素通过默认构造函数初始化.
对于 valarray(const Type& Val, Count), 每个元素通过 Val初始化.
对于 valarray(const Type* Ptr, Count), I位置上的元素通过 Ptr[I]初始化.
剩下的每个函数初始化一个在自变量中指定的子集“类型”<> 对象.
最后一个构造函数与最后第二个相同,但 规则引用声明符:&&不同.
示例
// valarray_ctor.cpp
// compile with: /EHsc
#include <valarray>
#include <iostream>
int main()
{
using namespace std;
int i;
// The second member function
valarray<int> va(10);
for (auto i : va){
va[i] = 2 * (i + 1);
}
cout << "The operand valarray va is:\n(";
for (auto i : va) {
cout << " " << va[i];
}
cout << " )" << endl;
slice Slice(2, 4, 3);
// The fifth member function
valarray<int> vaSlice = va[Slice];
cout << "The new valarray initialized from the slice is vaSlice ="
<< "\nva[slice( 2, 4, 3)] = (";
for (int i = 0; i < 3; i++) {
cout << " " << vaSlice[i];
}
cout << " )" << endl;
valarray<int> va2{{ 1, 2, 3, 4 }};
for (auto& v : va2){
cout << v << " ";
}
cout << endl;
}
要求
Header: <valarray>
命名空间: std