【发布时间】:2015-07-02 12:06:58
【问题描述】:
我想知道 unordered_map 作为我的特定问题的容器是否是一个不错的选择。我读到的关于地图的内容并没有真正涵盖我的内容,即:
- 容器将存储 100 到 500 个对象(不是 整数/双精度...)
- 大小永远不会改变。
- 顺序并不重要,因为对象本身包含某种“索引”。
- 很多时候(!)我需要过滤容器中的所有元素
属性(例如拥有
color==blue)
目前我使用向量,这很有效。但是,如果例如unordered_map 会提高性能(关于“过滤”)我可以通过图像来改变它。
【问题讨论】:
-
最好的方法是尝试一下 :)
-
如果关于需要过滤的对象的所有信息都在对象中,那么我会使用
std::array(如果您愿意浪费空间)或std::vector -
每个元素是否有多个不同的属性可以过滤容器?
-
需要有关您计划进行的过滤类型的更多信息。如果这是对单个属性进行过滤,并且您不需要遍历整个未过滤的集合,那么向量或数组的 unsorted_map 可能会很有用。我忘了 - 有没有 unsorted_multimap 这样的东西?
-
@Arkadiy 是的,有。
标签: c++ dictionary vector std