我有一个指向机器的指针: 也就是说,
vector<Machines*> m;
我用指针填充向量,我知道存在的机器数量。 如果我在向量的开头创建了一个指向机器指针的指针:
Machines** m2;
m2 = & m[0];
当我增加'0'时,我会访问向量成员吗?
m2[0]->dostuff;
m2[1]->dostuff;
...
对我来说似乎可行,但我不确定是否允许这样做。 :)
提前谢谢!
答案 0 :(得分:2)
这是允许的,但您是否意识到您可以执行以下操作并且没有理由使用Machines** m2;
?
vector<Machines*> m;
// Fill vector here
m[0]->dostuff(); // I assumed dostuff was a function
m[1]->dostuff();
答案 1 :(得分:2)
如果发生向量存储器的重新分配,代码中的指针将无效。
将元素推送到矢量时可能会发生这种情况。
答案 2 :(得分:1)
由于vector
保证分配连续内存,这似乎是正确的。但你为什么要这样?您可以直接在vector
。