工大人在上海
做为c++菜鸟也要嗷嗷飞!
博客园
首页
新随笔
新文章
联系
订阅
管理
posts - 25,comments - 9,trackbacks - 0
<
2007年4月
>
日
一
二
三
四
五
六
25
26
27
28
29
30
31
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
1
2
3
4
5
欢迎大家光顾的我日志页面,在这里,我会跟大家分享大学生活的感悟,技术学习的心得。有建议的朋友希望能够多多留言,多多指教。 3x~~ 天下大事 必作于细
我的主页
个人资料
我的闪存
发短消息
搜索
常用链接
我的随笔
我的空间
我的短信
我的评论
更多链接
我的参与
我的新闻
最新评论
我的标签
随笔分类
C#(2)
C/C++(8)
College Life
Intern Thinking(5)
It's My Life(8)
Java
随笔档案
2007年8月 (6)
2007年7月 (2)
2007年6月 (4)
2007年5月 (4)
2007年4月 (4)
2007年3月 (5)
相册
True Me
收藏夹
Favorite
Friends
KillKill's Blog
Lazy Guy's Blog
Lazy's Website
My Brother Tony's Blog
Pangwa's Blog
最新评论
1. re: 租房成功
是啊,是在浦东新区那里,2号线旁边。去公司只有15分钟路
--天下大事 必作于细
2. re: 租房成功
3300 那地段很好了, 我以前房东新买了套共富新村78平2LD的房子, 如果要租只要800
--╃小〥斌╄
3. re: 五一归来后的学习计划
o.明白了。3x
--天下大事 必作于细
4. re: 五一归来后的学习计划[未登录]
其实大家平时说话都是中文的,只是组里有个法国人不得不说英文而已
--Tony
5. re: 终于拿到auto的offer了[未登录]
orz, 学长, 你好强啊
--aaa
阅读排行榜
1. STL源码 阅读笔记(一) 迭代器头文件stl_iterator_base_types.h(436)
2. 续 "关于sgi stl为什么使用rb-tree的想法"(358)
3. boost::wave(336)
4. 关于sgi stl为什么使用rb-tree的想法(327)
5. 关于SGI STL源码中hashtable的一点疑问(302)
评论排行榜
1. 租房成功(2)
2. 五一归来后的学习计划(2)
3. 终于拿到auto的offer了(2)
4. 关于SGI STL源码中hashtable的一点疑问(2)
5. 现在当和尚都比做程序员合适(1)
关于SGI STL源码中hashtable的一点疑问
今天在研究SGI STL中的hashtable时有一点疑问一直没有想明白。
hashtable使用hash function来计算元素位置。但是sgi使用另外一个函数bkt_num()来完成这个任务,有这个函数来调用hash function来取得一个可以对hashtable进行取模运算的值,对于char,int,long等只需要返回其值即可。但是对于string,sgi设计了一个转换函数如下:
template
<
class
_Key
>
struct
hash
{ }
;
inline size_t __stl_hash_string(
const
char
*
__s)
{
unsigned
long
__h
=
0
;
for
( ;
*
__s;
++
__s)
__h
=
5
*
__h
+
*
__s;
return
size_t(__h);
}
这里的__h = 5*__h + *__s应该是把字符串转变成了一个long型的变量,但是采用这样的的运算进行转变有什么好处呢?为什么要乘5呢?
希望能有达人解释一下。。。。
也希望能够在网上搜到答案
0
0
0
(请您对文章做出评价)
«
上一篇:
现在当和尚都比做程序员合适
»
下一篇:
续:关于SGI STL源码中hashtable的一点疑问
posted on 2007-04-04 17:23
天下大事 必作于细
阅读(302)
评论(2)
编辑
收藏
所属分类:
C/C++
FeedBack:
700293
#1楼
2007-04-04 18:24 |
aaa[未注册用户]
不乘5的话, 两个字符相同但顺序不同的字符串的hashcode是相同的, 显然不行, 为什么乘五就不知道了.....
回复
引用
#2楼
[
楼主
]
2007-04-04 19:49 |
天下大事 必作于细
谢谢评论,但我就是不知道为什么非要乘5啊,为什么不选择其他数字呢?
回复
引用
查看
注册用户登录后才能发表评论,请
登录
或
注册
。
博客园首页
IT新闻
闪存
知识库
招聘
找优秀程序员,就在博客园
IT新闻
:
·
谷歌“身后事”:屏蔽.com不只是个传说?
·
腾讯今年招聘近3000人 员工总数将突破1万人
·
中国互联网江湖一窥:IT第一记者刘韧入狱记
·
9大IT科技公司总部览
·
五个广泛流传的对大龄程序员的误解
每天10分钟,轻松学英语
专题:
Android
iPad
jQuery
Windows 7
推荐职位
:
网站导航:
博客园首页
IT新闻
个人主页
闪存
程序员招聘
社区
博问
网摘
China-pub 计算机图书网上专卖店!6.5万品种2-8折!
China-Pub 计算机绝版图书按需印刷服务
相关搜索:
C/C++
在知识库中查看:
关于SGI STL源码中hashtable的一点疑问