c++ - unordered_set (C++) 在字符串的情况下与在整数的情况下的性能有什么不同吗?
问题描述
我想知道 unordered_set 使用散列,所以在整数的情况下应该比在字符串的情况下更快。unordered_map 也是如此。我在网上没有找到明确的答案。如果有人能澄清这一点,那就太好了。
解决方案
unordered_set (C++) 在字符串的情况下与在整数的情况下的性能有什么不同吗?
可以有。语言规范不保证一种或另一种方式。
您可以通过测量性能来验证您的目标系统上的程序是否属于这种情况。
如果您正在考虑是使用字符串本身作为键,还是使用单独散列的字符串(即整数),那么技术上单独的散列会更昂贵,因为整数将再次被散列。也就是说,散列一个整数是微不足道的(我认为它可能是恒等函数),所以这可能没有明显的效果。
单独的散列 + 存储整数确实具有潜在的优势:您可以对字符串键进行一次预散列,并重用散列的整数键,而具有字符串键的映射需要在每次查找时重新散列键。这对您的情况是否有用取决于您要对地图执行的操作。
推荐阅读
- ansible - ansible with_items 用逗号分隔 item.values
- if-statement - 在 Google 表格上查找最常出现的条件
- javascript - 如何在 jquery 中单击元素
- javascript - Symfony 2 - 使用 FormData 和 ajax 上传文件,请求中没有任何内容
- c++ - std::byte 指针是否应该用于指针算术?
- javascript - 如何在 JavaScript 严格模式下使用 fetch() API?
- microsoft-graph-api - Microsoft Graph Beta getSchedule API 不一致主题
- c# - 并行 For 循环 Selenium C# - 不是测试
- c# - 使用合成从 UWP 中的 UI 控件创建视频
- python - 在 Rstudio 中集成 python 的关键难点是什么?