在构造过程中使用插入(或放置)而不进行分配后,如何保留无序集合中元素的顺序?
有关此问题的详细信息,这是一个示例:
- 构造了一个无序的整数集S
- 480 插入到 S 中:S = { 480 }
- 32 插入到 S 中:S = { 32 480 }
- 23 被插入到 S 中:S = { 23 32 480 }
- 16 被插入到 S 中:S = { 16 23 32 480 }
- 19 被插入到 S 中:S = { 19 480 32 23 16 }
您可以看到最后一次插入是如何破坏序列顺序的(我假设通过重建一个更大的集合并将元素移动过来)。我正在寻找一种方法来在插入元素后保留先前的顺序,而无需在构造函数中专门分配。
最佳答案
根据定义,无序集是无序的。没有定义的顺序,集合中元素的迭代顺序可以随时更改。
在构造函数中分配一些东西也不会有任何区别。
如果您想要一个具有特定迭代顺序的集合,这就是 std::set
的用途。但是,std::set
始终按键值而不是插入顺序排序。
您可能需要将多个容器组合在一起,以实现所需的访问语义。
关于c++ - 使用插入 C++ 后维护无序集中的顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41405358/