如何初始化一个向量数组?

时间:2014-10-29 06:30:48

标签: c++ vector

我知道如何初始化具有默认值的矢量" val"。

vector <int> v(size,val);

但是我想初始化 一个向量 数组,其中每个向量都有一个默认值&#34; val&#34; .....或者如果可能的话不同值。

声明:

vector <int> v[10];

2 个答案:

答案 0 :(得分:0)

我明白了...... 还有另一种方式。 使用默认值&#34; VAL&#34;:

创建给定大小的二维向量
int N, N; 
// ... 
vector< vector<int> > Matrix(N, vector<int>(M, VAL));

答案 1 :(得分:0)

使用c ++ 11的更通用版本,您无需重复编写向量构造函数。它返回一个std :: array

template <unsigned N>
auto make_array_of_vecs(std::size_t size, int val) {
   std::array<std::vector<int>, std::index_sequence<I...>::size()> arr;
   std::fill(begin(arr), end(arr), std::vector<int>(size, val));

   return arr;
 }

使用方法:

auto array_of_vecs = make_array_of_vecs<10>(15, 10);

警告:未经测试。