如何使用“矢量矢量”?
我已经在网上搜索了它,但我没有得到满意的结果。如何使用“矢量矢量”?
我想创造这样
vector< vector<int*> > test_vector;
如何填写载体这个载体?如何访问它的成员?也许有人知道网上的一些很好的教程?
亲切的问候 MIKEY
只要记住的test_vector
每个元素都是vector<int*>
类型。填写每个元素向量即可填写test_vector
。
您可以像访问任何多维数组一样访问它。请参阅:
int *p = test_vector[0][0];
或者:
int *p = test_vector.at(0).at(0);
谢谢!我重新考虑了这个问题,并且为了编写一些测试程序,这些测试程序帮助我理解! – 2010-06-16 17:29:53
PS 如果你想使用某种类型的矩阵,我宁愿只使用一维矢量地图(因为性能)的访问。
例如矩阵M具有m行和n列:可以映射调用
M [i] [j] = x至M [我* N + j]的= X。
这假设OP希望每个内部矢量具有相同的尺寸......这可能不是当前的问题。 – andand 2010-06-15 18:09:39
因此,我在我的答案中使用矩阵。 – LonliLokli 2010-06-15 21:24:37
通过在其中放入载体来填充矢量矢量。
您以与其他矢量相同的方式访问其成员。
我肯定不会使用int *作为你的向量的内容。如果你要存储数字,只需使用int(或double/float/...)。指针的使用使得当你的矢量被破坏时你必须删除它们中的每一个。否则,你会得到一个内存泄漏。 – rubenvb 2010-06-15 17:59:14
请参阅:http://stackoverflow.com/questions/823562/multi-dimensional-vector – Shog9 2010-06-15 18:06:07
我知道你的关注,但上面的代码片段只是一个示范。实际上,我必须处理指向对象的指针。 – 2010-06-15 21:33:11