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

Kar*_*rus -2 c++

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

int *x = new int[100];
Run Code Online (Sandbox Code Playgroud)

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

但是,如果我使用:

std::vector<int> *x = new vector<int>(100);
Run Code Online (Sandbox Code Playgroud)

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

Mar*_*k B 5

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

std::vector<std::vector<int> > x(100, std::vector<int>(100));
Run Code Online (Sandbox Code Playgroud)


bia*_*pio 5

为了实现您想要的目标,您需要执行以下操作:

std::vector<int> *x = new vector<int>[100];
Run Code Online (Sandbox Code Playgroud)

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