【发布时间】:2010-09-19 08:51:47
【问题描述】:
我有一个定义了自定义排序的 C++ STL 集。
这个想法是,当项目被添加到集合中时,它们自然会按照我想要的顺序排列。
但是,我刚刚意识到,排序谓词会随着时间的推移而改变。
大概,集合中的项目将不再按顺序排列。
真的有两个问题:
然后物品出现故障是否有害?我是否正确地说,可能发生的最坏情况是新条目可能会被放入错误的位置(实际上我可以忍受)。或者,这会导致崩溃、丢失条目等吗?
有没有办法“刷新”集合的顺序?您似乎无法在集合上使用 std::sort() 。我能想到的最好的办法是将内容转储到临时容器中并重新添加它们。
有什么想法吗?
谢谢,
约翰
【问题讨论】:
-
你的意思是上午 11 点的 pred(a, b) 与上午 10 点的 pred(a, b) 不同吗?