创建恒定大小向量的恒定大小向量

时间:2018-03-18 14:56:39

标签: c++ c++11 memory vector allocation

我正在尝试学习C ++。目前我遇到了一个教程,其中提到了如何创建一个这样的常量大小的向量:vector <int> v(10);现在我想知道如何创建一个常量大小向量的恒定大小的向量,如:vector <vector <int> (10)> v(10);这代码不起作用,所以我想问有没有办法做这样的事情,如果有,怎么样?

2 个答案:

答案 0 :(得分:4)

你可以

vector<vector<int>> v(10, vector<int>(10));

即。使用值为std::vector<int>(10)的10个元素副本构造std::vector

请注意,对于std::vector,大小不是常量,可能会在插入或删除元素时更改,10只是v及其元素初始化时的初始大小。另一方面,std::array的大小是常量,它是在编译时指定的,不能在运行时更改。

答案 1 :(得分:3)

你不能拥有常量大小的向量的常量大小的向量,而无需编写自己的某种类包装器。为任务使用更合适的std::array容器:

std::array<std::array<int, 10>, 10> arr;