我正在寻找一个保留插入顺序(没有排序)但不允许重复的STL容器。有吗?如果没有任何技巧我可以用来定制一个?
答案 0 :(得分:8)
目前没有这样的容器,但您可以通过在一个类中同时拥有std::vector
和std::set
来以便宜的方式创建自己的容器。
答案 1 :(得分:6)
我知道您已经特别要求提供STL容器,但是已经提供了一个multindex容器,它可以通过 ordered_unique 索引执行您想要的操作。我绝对值得一看,而不是重新发明轮子。
我只想指出一个好的选择。
祝你好运。答案 2 :(得分:2)
无需重新发明轮子,请考虑使用boost::multi_index
容器。然后,您可以根据心脏的内容定义各种索引。性能差异(如果你担心)应该是最小的。
答案 3 :(得分:1)
没有一个。在没有排序或散列的情况下检测重复项是一项相当昂贵的操作。