我正在寻找快速迭代时间的连续数据结构,并结合通过密钥的快速随机访问。而且,我需要从索引中有效地获取密钥。目前,我使用标准库中不同集合的组合。
std::vector<Value> values;
std::unordered_map<Key, size_t> indices;
std::unordered_map<size_t, Key> keys;
这样可行,但它需要一些胶水代码,可能不会尽可能快。似乎boost::multi_index_container
完全符合我的需要。但是,它是否会连续将值存储在内存中?
答案 0 :(得分:2)
Boost.MultiIndex 不连续存储值,但其随机访问索引提供类似矢量的访问,可能足以满足您的需求。