我需要维护用户输入数据的顺序,但需要消除重复项。我查看了 map ,它消除了重复项,但无法保持用户输入的顺序。设置同样的问题。 STL中有没有什么数据结构可以同时满足这两个要求呢?我无法在这个项目上使用 boost。
最佳答案
问题是,如果您保持搜索顺序,则搜索重复项的成本很高,因此您往往不会找到同时执行这两种操作的数据结构。 C++11 介绍 std::unordered_set
,这可能就是您想要的。
如果你不使用C++11,你可以将一些标准容器封装在一个类中。我建议您将元素放入 set
或map
,然后将迭代器存储到 vector
中的项目.
关于c++ - C++ 中用于维护插入顺序并消除重复的数据结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17583002/