STL Container保留插入顺序但不允许重复

时间:2011-06-08 12:19:26

标签: c++ stl

  

可能重复:
  A std::map that keep track of the order of insertion?

我正在寻找一个保留插入顺序(没有排序)但不允许重复的STL容器。有吗?如果没有任何技巧我可以用来定制一个?

4 个答案:

答案 0 :(得分:8)

目前没有这样的容器,但您可以通过在一个类中同时拥有std::vectorstd::set来以便宜的方式创建自己的容器。

答案 1 :(得分:6)

我知道您已经特别要求提供STL容器,但是已经提供了一个multindex容器,它可以通过 ordered_unique 索引执行您想要的操作。我绝对值得一看,而不是重新发明轮子。

我只想指出一个好的选择。

祝你好运。

答案 2 :(得分:2)

无需重新发明轮子,请考虑使用boost::multi_index容器。然后,您可以根据心脏的内容定义各种索引。性能差异(如果你担心)应该是最小的。

答案 3 :(得分:1)

没有一个。在没有排序或散列的情况下检测重复项是一项相当昂贵的操作。