c++ - 简单高效的C++容器,具有map和list容器的特点

标签 c++ map linked-list containers

我正在寻找一个将享受 map 容器和列表容器优势的 C++ 容器。

ma​​p 我想维护的容器优势:

  • O(log(n)) 访问
  • 运算符[] 易用性
  • 自然稀疏

列出我想维护的容器优势:

  • 在项目之间有顺序
  • 能够轻松地遍历列表更新:通过基于键或值的排序

一个简单的示例应用程序是保存特定有效日期的列表(工作日期、假期、其他一些重要日期集......),一旦给定特定日期,您可以立即找到它“ map 样式”并且然后找到下一个有效日期“列表样式”。

最佳答案

std::map 已经是一个排序的容器,您可以在其中按顺序迭代包含的项目。不过,它仅提供 O(log(n)) 访问。

std::tr1::unordered_map(或 C++0x 中的 std::unordered_map)具有 O(1) 访问权限但未排序。

您真的需要 O(1) 访问权限吗?您必须使用大型数据集并执行 许多 查找,因为 O(log(n)) 不够快。

如果 O(log(n)) 足够,std::map 提供您所要求的一切。

关于c++ - 简单高效的C++容器,具有map和list容器的特点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4070543/

相关文章:

web-services - 如何通过 Web 服务传输 java.util.Map?

c++ - map::iterator 是否产生左值?

c - 如何将字符串传递给链表而不是 C 中的字符数组?

java - 从链接列表中删除学生

c++ - 静态库中的外部变量链接失败

c++ - 如何获取 quickfix 时间戳?

C++ 迭代映射

c# - COM 与 .Net 的互操作性 - 缺少方法/属性

c++ - 无法将 boost 库与 CMake 链接

java - 递归查找链表中的倒数第 n 个元素