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