选择具有唯一性的STL容器并保持插入顺序

Nav*_*een 8 c++ stl

我无法决定在以下情况下使用哪个STL容器:

  1. 我想保留元素的插入顺序
  2. 容器中的元素必须是唯一的.

有没有现成的容器可用于此?我不想使用向量,然后std::findpush_back每次执行之前执行.

Gre*_*ers 20

Boost MultiIndex应该能够做到你想要的 - 你可以只使用一个有序索引来获得"按插入顺序排序"的要求,并使用a hashed_uniqueordered_unique索引来获得唯一性要求.


Bri*_*ian 5

可能有一种很好的内置方法可以做到这一点,但一种相当简单的方法是同时使用hash_map和list.在每次插入之前检查hash_map,然后插入两者.你可能希望将它封装在一个类中.