【发布时间】:2013-06-03 08:38:55
【问题描述】:
我需要一个像地图一样的数据结构,但每个键可能有多个与之相关的值,但我需要将与单个键对应的所有值作为对象数组获取。那么哪种数据结构最好做到这一点。我不需要在数据结构中搜索,我只需要快速访问与特定键对应的所有值。我查看了 std::multimap 但它没有返回特定键的所有值。那么我可能会使用哪种 C++ 中最好的数据结构?
【问题讨论】:
-
std::map<key_type, std::vector<value_type>>. -
顺便说一句,multimap 可以通过键返回值,而不是在数组中,但可以。 cplusplus.com/reference/map/multimap/equal_range
-
@ForEveR,是的,我知道,但想知道是否存在将所有值作为数组返回的东西
-
为什么需要将值作为数组?
-
如果我向您解释整个事情会更好。我有一个 3D 网格,现在我有许多由一组点组成的不同形状的单元格。现在我需要知道所有具有特定点的单元格的索引。所以我在地图中的“键”将是该点的索引,而我的“值”应该是共享该点的所有单元格的索引。现在我不想一次又一次地迭代 std::map,因为我有大约 8000 万个这样的点需要填充地图。我希望你能理解我想要表达的意思
标签: c++ data-structures c++11 map multimap