【发布时间】:2017-08-16 09:28:24
【问题描述】:
寻找一个容器,将元素存储在自定义键(如地图)下,允许在键下搜索更复杂,然后是 O(n)(如地图),但也记住配对的顺序(键和 value) 被插入,允许 push_front 和 pop_back 功能,就像在列表中
编辑:只需使用两个容器即可解决。用于存储对的映射和用于按顺序存储索引的列表。如果有人提供更优雅的解决方案,会留下这个问题。
【问题讨论】:
-
你可以使用multiindex 虽然语法有点粗糙
-
没有标准的容器既可以排序又可以记住未排序的顺序。您可以通过使用 map 进行存储和快速搜索来构建一个简单版本的多索引,同时还将键存储在双端队列中(支持 push_front 和 pop_back)。假设快速搜索是最重要的。
-
c++11 有 std::unsorted_map,正是这样做的。
标签: c++ containers std