要创建动态分配的数组,我使用:
int *x = new int[100];
这将创建一个包含100个int
元素的数组。
但是,如果我使用:
std::vector<int> *x = new vector<int>(100);
这也会创建一个包含100个int
元素的数组。但为什么它不会创建100个vector<int>
元素的数组?那我该怎么做呢?
答案 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);