如何在C ++中定义矢量矢量?

时间:2013-11-04 21:00:11

标签: c++ pointers vector

我想创建一个向量,在这个向量的每个单元格中,我想保留另一个向量,它将包含我定义的某个结构。我该怎么做? 我是否应该从主矢量中的每个单元格到每个其他矢量(包含我定义的结构)定义一个指针?我应该使用指针访问创建向量的内存吗?

这就是我想到的方法,但老实说我不确定我在做什么:

vector<*vector> *vec = new vector<vector>

注意:我是C ++的初学者,也是一般的编程新手,所以在这一个问题上对我很轻松。

非常感谢

3 个答案:

答案 0 :(得分:4)

一般规则是不要使用指针(和动态分配),除非你需要。所以你可以这样做:

std::vector<std::vector<your_struct> > vector_of_vectors;

答案 1 :(得分:1)

就像你实例化任何东西的载体一样:

std::vector<std::vector<MyType>> v;

指针与它无关。当且仅当您需要指针向量时,才使用指针向量。

答案 2 :(得分:1)

您不需要指针,只需使用

即可
std::vector<std::vector<int>> vec( 100 ); // create a vector of 100 vector<int> 
vec[42].push_back(1764); // add an element to the 43rd vector<int>