【发布时间】:2017-03-14 14:52:53
【问题描述】:
我想创建一个std::unordered_map < int, std::string >
或std::unordered_map< std::string, int >。
在这张地图中,我将存储字符串及其整数表示。
我将只在代码中填写这张地图(硬编码对)。
我需要将输入字符串转换为它们的 int 值 - 在 map 中查找。 所以我只需要在运行时在地图中搜索。 在这一点上,我需要在转换时获得最佳性能。 在最好的情况下 - O(1)。
我的问题:
- 我应该使用字符串作为键还是整数?
- 我应该定义自己的哈希函数吗?
- 对于 string/int 和 int/string 作为密钥对这两种情况的最佳性能查找函数是什么?
【问题讨论】:
-
为什么不同时尝试一下,profile(measure) 看看你得到了什么?
-
如果你有一个
string并且需要找到一个对应的int(正如你在问题中所说的那样)那么显然std::unordered_map<std::string, int>。 -
首先,避免过早优化 (stackoverflow.com/questions/2978460/…) :)
-
@KonstantinL,是的。这是首先:)
标签: c++ performance search find unordered-map