STL容器,保留插入顺序,但不允许重复



可能重复:
一个跟踪插入顺序的std::映射?

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

目前还没有这样的容器,但您可以通过将类中的std::vectorstd::set放在一起以廉价的方式创建自己的容器。

我知道您特别要求使用STL容器,但是boost已经提供了一个多索引容器,它可以通过其ordered_unique索引实现您想要的功能。我绝对值得一看,而不是重新发明轮子。

我只是想指出一个好的替代方案。

祝你好运。

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

没有。在不进行排序或散列的情况下检测重复项是一项非常昂贵的操作。

最新更新