创建一个动态分配的std :: vectors数组

时间:2015-03-31 00:38:03

标签: c++

要创建动态分配的数组,我使用:

int *x = new int[100];

这将创建一个包含100个int元素的数组。

但是,如果我使用:

std::vector<int> *x = new vector<int>(100);

这也会创建一个包含100个int元素的数组。但为什么它不会创建100个vector<int>元素的数组?那我该怎么做呢?

3 个答案:

答案 0 :(得分:5)

为了实现您的目标,您需要做到:

std::vector<int> *x = new vector<int>[100];

这将动态分配100个向量的数组,每个向量将默认构造。

答案 1 :(得分:4)

如果要创建100个向量,每个向量包含100个整数,只需使用多个(嵌套)向量:

std::vector<std::vector<int> > x(100, std::vector<int>(100));

答案 2 :(得分:-1)

您需要将变量声明为向量的向量,而不是整数向量。

std::vector<vector<int>> *x = new vector<vector<int>>(100);
相关问题