当前位置:  开发笔记 > 编程语言 > 正文

STL排序集,其中订单的条件可能会发生变化

如何解决《STL排序集,其中订单的条件可能会发生变化》经验,为你挑选了1个好方法。

我有一个定义了自定义顺序的C++ STL集.

这个想法是,当项目被添加到集合中时,它们会按照我的需要自然排序.

但是,我刚才意识到,排序谓词可以随着时间的推移而改变.

据推测,集合中的项目将不再有序.

真的有两个问题:

    然后这些物品会出现故障是否有害?我是否正确地说,可能发生的最坏情况是新的条目可能被放入错误的地方(实际上我可以忍受).或者,这会导致崩溃,丢失条目等吗?

    有没有办法"刷新"集合的顺序?您似乎无法在集合上使用std :: sort().我能想到的最好的方法是将内容转储到临时容器中并重新添加它们.

有任何想法吗?

谢谢,

约翰



1> xtofl..:

set使用排序来查找项目.如果您根据ordering1插入N个项目并根据orders2插入项目,则该集合无法确定该项目是否已经存在.

它会违反每个项目只存在一次的类不变量.

所以它确实有害.

推荐阅读
虎仔球妈_459
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有