use*_*495 4 c++ insert unordered-set c++14
如何在构造期间使用insert(或emplace)而不分配时,如何在无序集合中保留元素的顺序?
有关此问题的详细信息,请参阅以下示例:
你可以看到最后一次插入如何破坏序列顺序(我假设通过重建一个更大的集合并移动元素).我正在寻找一种方法来在插入元素之后保留先前的顺序,而无需在构造函数中专门分配.
Sam*_*hik 10
根据定义,无序集合是无序的.没有已定义的顺序,集合中元素的迭代顺序可以随时更改.
在构造函数中分配一些东西也不会有任何区别.
如果你想要一个具有特定迭代顺序的集合,那就是为了什么std::set
.但是,std::set
始终按键值排序,而不是按顺序排序.
您可能需要将多个容器组合在一起,以实现所需的访问语义.