寻找排序容器,其中指向元素的指针在添加/删除时不会改变

Veg*_*ga4 2 c++ boost pointers stl c++11

我正在寻找一种容器类型,其中指向对象的指针在项目添加/删除时不会改变(甚至从中间).具有相同优先级的项目顺序可以更改.

它可以是Boost的一部分.想法?

为什么?

所以我可以将对象保存在一个地方(一个容器)并仍然对它们进行排序.需要将指针传递给其他对象.

在std :: set的情况下

存储指向MyType这类元素的指针是否安全?元素将由每个元素的成员函数修改,但用于比较的属性将在集合中每个对象的生命周期内保持不变.

更新:万一有人决定坚持使用C++ STD或者转向Boost; 值得一看:Boost MultiIndex

Edg*_*jān 7

看看std :: set(或std :: multiset,如果存储的元素可能相同).

首先,它们是有序的.

然后,在添加/删除操作中,所有引用和迭代器(如果它们在删除时不指向已删除的元素)保持不受影响.

有关容器和引用/迭代器失效的更多信息,请检查此线程.