【发布时间】:2013-03-29 06:32:24
【问题描述】:
我需要一个解决方案,它将存储非唯一的键值对。我不想重复键(空间效率),我想专注于查找速度(插入新数据的效率不太重要)。我将在这里使用 std::multimap 。但我将不得不查找符合某些范围标准的键。
最复杂的例子: 键是字符串,值不重要。 我想找出所有值,哪些键以“Lol”开头。 或者我想找出所有值,哪些键“介于”“bar”和“foo”之间。
我可以用多张地图来做吗?我的第二个想法是使用排序向量,它将指向值向量。类似的东西:
std::vector<std::string, std::vector<T>> sorted_vec;
然后我可以轻松满足搜索条件。但我真的很关心查找的性能。这是一个正确的方法吗?
【问题讨论】:
-
听起来有序的向量图更符合您所描述的路线,但我不确定它是否适合您。
-
如果插入不重要,我认为
vector比map更受欢迎,因为后者是基于 rb-tree 的。struct foo {}; vector<foo>;可能没问题。
标签: c++ stl containers