c++ - 在 map 和列表之间寻找标准容器

标签 c++ containers std

寻找一个容器,将元素存储在自定义键下(如 map ),允许在键下以更好的复杂性进行搜索,然后是 O(n)(如 map ),但也会记住对的顺序(键和值)被插入,允许 push_front 和 pop_back 功能,就像在列表中一样

编辑: 只需使用两个容器即可解决。用于存储对的映射和用于按顺序存储索引的列表。如果有人提出更优雅的解决方案,将保留这个问题。

最佳答案

标准库中没有这样的数据结构。

实现这种结构的“简单”方法是在内部使用两个独立的结构。用于查找的映射,以及用于按插入顺序迭代的列表(或 vector 或双端队列)。一个数据结构应该存储对象,另一个可以存储指向对象的指针。

Boost 中有这种多索引容器的概括。图书馆馆藏。

关于c++ - 在 map 和列表之间寻找标准容器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45709875/

相关文章:

c++ - 我的 C++ 程序没有执行我的 cout 代码

containers - 在 Ubuntu 20.04 中运行 podman 的问题

ios - 将容器置于其他容器之上

java - 如何管理容器化应用程序设置?

c++ - 在模板参数中查找 typename 的 typename

c - 使用 fscanf 读取行

c++ - 从 boost::optional 检索对象

c++ - Eclipse 无法链接到 kernel32.lib

c++ - 体系结构 x86_64 : and cannot find the reason 的 undefined symbol

c++ - 在程序中获取AIX中进程的虚拟内存大小