寻找一个容器,将元素存储在自定义键下(如 map ),允许在键下以更好的复杂性进行搜索,然后是 O(n)(如 map ),但也会记住对的顺序(键和值)被插入,允许 push_front 和 pop_back 功能,就像在列表中一样
编辑: 只需使用两个容器即可解决。用于存储对的映射和用于按顺序存储索引的列表。如果有人提出更优雅的解决方案,将保留这个问题。
最佳答案
标准库中没有这样的数据结构。
实现这种结构的“简单”方法是在内部使用两个独立的结构。用于查找的映射,以及用于按插入顺序迭代的列表(或 vector 或双端队列)。一个数据结构应该存储对象,另一个可以存储指向对象的指针。
在 Boost 中有这种多索引容器的概括。图书馆馆藏。
关于c++ - 在 map 和列表之间寻找标准容器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45709875/