【问题标题】:Change the order of two equal elements in an STL multiset更改 STL 多重集中两个相等元素的顺序
【发布时间】:2016-05-14 12:05:19
【问题描述】:

在 C++ 中,我有一个 STL multiset<int, cmp>。我定义了一个自定义比较运算符,所以两个不同的整数仍然可以比较相等。在这种情况下,当它们相等时,如何更改集合中两个整数的内部顺序?

我读到了向多重集添加第二个值的选项,并根据我想要的顺序设置它的值,但是,这似乎相当复杂。有没有更简单的解决方案,例如按特定顺序擦除和插入这两个元素?

【问题讨论】:

  • A set 只接受独特的元素。如果插入 12cmp 表示它们相等,则不会插入 2。也许您正在寻找multi_set
  • 内部顺序是什么?一个集合中不能有两个相等的元素。
  • 是的,你是对的。多集就是我的意思,谢谢:)

标签: c++ stl set


【解决方案1】:

重新排序元素的唯一方法是删除一个并重新插入它。

将相等的元素插入多重集合时,添加的元素将在现有元素之后,或者您可以使用带有提示的insert 函数来控制重新插入元素的位置。

【讨论】:

    猜你喜欢
    • 2011-04-19
    • 2018-03-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-15
    • 2012-03-19
    • 1970-01-01
    相关资源
    最近更新 更多