在C ++中,我有一个STL multiset<int, cmp>
。我定义了一个自定义比较运算符,因此两个不同的整数仍然可以比较相等。鉴于这种情况,当它们相等时,如何更改集合中两个整数的内部顺序?
我读到了为multiset添加第二个值并将其值相应地设置为我想要的顺序的选项,但是,这看起来相当复杂。是否有更简单的解决方案,例如按特定顺序擦除和插入两个元素?
答案 0 :(得分:2)
重新排序元素的唯一方法是删除一个并重新插入它。
将多个元素插入到多个集合中时,添加的元素将在现有元素之后,或者您可以使用带有提示的insert
函数来控制元素重新插入的位置。