如何初始化矢量数组

How to initialize an array of vector?

本文关键字:数组 初始化      更新时间:2023-10-16

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

vector <int> v(size,val);

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

声明:

vector <int> v[10];

我拿到了。。。。还有另一种方法。创建具有默认值"VAL"的给定大小的二维矢量:

int N, N; 
// ... 
vector< vector<int> > Matrix(N, vector<int>(M, VAL));

一个更通用的版本,使用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);

警告:未测试。