c++ - 确保在对象更改时重新排序 multiset

标签 c++ stl multiset

我有一个带有自定义谓词函数的多重集,例如 multiset<MyClass *,MyCompFunc>其中 MyCompFunc 查看 MyClass 对象的属性。在应用程序的运行过程中,对象可能会以某种方式发生变化,从而导致它们被重新排序。

发生这种情况时,让多重集重新排序的正确方法是什么?手动排序,还是移除修改后的对象,更新,重新插入?

最佳答案

通常是删除、更新和重新插入。实际上,任何其他至少暂时违反集合/多重集的主要不变量,这显然不是一件好事。

关于c++ - 确保在对象更改时重新排序 multiset,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3638406/

相关文章:

c++ - 客户端和服务器

c++ - 如何检查boost线程正在运行并杀死它

java - 袋子实现,将元素添加到袋子中,不允许重复

C++:将 std::set_union() 输出存储在 std::multiset 中

c++ - 将多集转换为集合的有效方法

c++ - 如何获得更精确的鼠标移动

c++ - 为在循环中多次调用的函数返回值预分配内存的正确方法是什么?

c++ - 如何确保函数模板的参数是随机访问迭代器?

c++ - 为什么C++不提供先进先出单链接列表?

c++ - STL 中的 remove_neighbors 就像时尚