gpt4 book ai didi

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

转载 作者:搜寻专家 更新时间:2023-10-30 23:52:46 25 4
gpt4 key购买 nike

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

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

为什么?

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

在 std::set 的情况下

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

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

最佳答案

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

首先,它们是排序的。

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

有关容器和引用/迭代器失效检查的更多信息 this thread .

关于c++ - 寻找已排序的容器,其中指向元素的指针在添加/删除时不会改变,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44718943/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com