c++ - C++ 中用于维护插入顺序并消除重复的数据结构

标签 c++

我需要维护用户输入数据的顺序,但需要消除重复项。我查看了 map ,它消除了重复项,但无法保持用户输入的顺序。设置同样的问题。 STL中有没有什么数据结构可以同时满足这两个要求呢?我无法在这个项目上使用 boost。

最佳答案

问题是,如果您保持搜索顺序,则搜索重复项的成本很高,因此您往往不会找到同时执行这两种操作的数据结构。 C++11 介绍 std::unordered_set ,这可能就是您想要的。

如果你不使用C++11,你可以将一些标准容器封装在一个类中。我建议您将元素放入 setmap ,然后将迭代器存储到 vector 中的项目.

关于c++ - C++ 中用于维护插入顺序并消除重复的数据结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17583002/

相关文章:

c++ - 如何在数组中添加对象成员?

C++ 使用库进行编译

c++ - 使用 ShellExecute 打开 URL - C++ 中的 SW_SHOW MAXIMIZED 非事件窗口

具有特征的类的 C++ 重载运算符

c# - 使用 C# 和 EmguCV 提取图像的 RGB 颜色直方图

c++ - 继承 react

c++ - 从 CSV 创建字符串数组

c++ - Visual Studio 2017 中的 Windows SDK 版本设置

c++ - 提供给 std::generate 的仿函数可以是有状态的吗?

c++ - 有偏随机数发生器