添加到向量或从向量中删除后,指向向量元素的指针(在c ++中)

时间:2014-11-09 20:27:36

标签: c++ pointers vector

我正在研究碰撞引擎,更具体地说,我正在努力制作一个世界上相关机构的载体。为了能够访问代表特定对象的世界中的主体向量中的特定主体,我需要知道哪个特定主体代表该对象。要做到这一点,我想在添加一个新体时返回一个指向身体向量中的体的指针,但是当我移除一个体时会发生什么?更具体地说,如果我移除了在主体列表中当前主体之前的主体,并且主体在阵列中的位置发生了变化,该怎么办?我的指针仍然指向内存中的正确位置吗?

1 个答案:

答案 0 :(得分:3)

在向量中移除元素后,移除元素后的所有元素将向左移动一个位置。因此,如果指针是向量中的最后一个元素,则指针将指向其他元素或指向已删除的元素。

如果添加新元素,则向量可以重新分配内存。所以指向向量元素的所有指针都是无效的。