为什么 C++自带的哈希表竟然有点慢?

2021-01-18 07:39:10 +08:00
 dorafmon

大家好,我是一名 C++码农,因为在平时工作 /面试的过程中经常会遇到一些关于 C++的细节,而这些知识点大多散在各种书 /博客 /github repo 里,所以我想把这些只是总结成每个 10mins 左右的视频,分享给大家,也是我自己对自己知识图谱的一个总结。我在录这个视频的时候面对的对象人群是 junior C++ developer,想好好准备 C++知识面试,或者是想学习一些跟 C++有关的能应用在工作中的 best practice 。因为我自己在国外,所以有些时候有些中英混杂,实在不好意思。

下面是第三个视频,讲的是关于 C++中自带的哈希表,为什么它有那么一丢丢慢~

希望大家喜欢我的视频,也希望大家指出我视频中的错误~

b 站: https://www.bilibili.com/video/BV1ah411y7Ni

youtube: https://youtu.be/nx5g5bwtUuA

还烦请大家给我一键三连,订阅我的频道,开启小铃铛~

谢谢大家~

4179 次点击
所在节点    推广
30 条回复
elfive
2021-01-18 07:43:38 +08:00
标题党
dorafmon
2021-01-18 07:47:59 +08:00
@elfive 我改了,我本来想幽默一把的
dorafmon
2021-01-18 07:50:53 +08:00
没时间看视频的可以看我的底稿文案: https://github.com/bobfang1992/vlog/tree/master/c%2B%2B3-maps
nnqijiu
2021-01-18 08:43:08 +08:00
推广帖
AkideLiu
2021-01-18 08:48:33 +08:00
他慢他是 std
dorafmon
2021-01-18 08:51:18 +08:00
@nnqijiu 嗯嗯 我之前的视频标题都是“给新手 C++程序员的 tips”这回本来想幽默一把,但是感觉好像起了反作用,但是我还是想分享这个知识的,不好意思让你觉得是推广贴了,你可以选择不看视频,底稿文案我也付在下面了。
dorafmon
2021-01-18 08:52:14 +08:00
@AkideLiu 对,也没什么特别好的选择,就算慢也要用,所以有的时候就认了。
b00tyhunt3r
2021-01-18 09:35:34 +08:00
对我来说视频形式反而比文章更易于吸收,中文圈技术短视频 up 主太少了
滋瓷一个
Monad
2021-01-18 09:39:14 +08:00
其实感觉讲的还不错 就是标题😅
Monad
2021-01-18 09:40:11 +08:00
@Monad 我感觉直接写 absi 对比 std 实现都会有更多人点进来😅
52coder
2021-01-18 09:43:20 +08:00
资瓷,讲的不错,声音可以搞得稍微大点,视频和文件一起放出来,萝卜青菜各有所爱,已关注
XIVN1987
2021-01-18 09:43:35 +08:00
意思是 std::map 比 google 的 map 实现慢 10 倍??

那可真是够慢啊,,怪不得经常有人说 java 比 C++快,,看来也不是没可能啊
BrettD
2021-01-18 09:54:05 +08:00
@XIVN1987 这和 Java 比 C++快有啥关系……
YouLMAO
2021-01-18 09:57:53 +08:00
std::map 是红黑树,哈希你妹妹
fps23dot9999
2021-01-18 10:01:51 +08:00
都打开-o2 优化试试
XIVN1987
2021-01-18 10:03:48 +08:00
@BrettD

写程序肯定要用标准库啊,,标准库里的代码速度慢,,那最终程序就跑的慢啊
dinghao188
2021-01-18 10:16:18 +08:00
@YouLMAO unordered_map 是哈希表
anzu
2021-01-18 10:21:51 +08:00
在 closed hashing 的情况下,怎么知道查找一个元素时需要再 probing ?
sariya
2021-01-18 10:32:13 +08:00
stl 暴露实现细节那块没看懂,原文直译是“所有可见行为取决于某人”?
fengjianxinghun
2021-01-18 10:35:06 +08:00
@XIVN1987 标准库里有 std::unordered_map,那才是 hash 表,std::map 是红黑树。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/745761

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX