在地图和列表之间寻找标准容器

Looking for std container between map and list

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

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

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

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

Boost 库集合中有这种多索引容器的概括。