是不是我没有理解“连续整数”的含义。有不少算法,最简单的就是这个:
代码:
#include <iostream>
#include <string>
int hash(const std::string& str){
int res=0;
for(std::string::const_iterator it=str.begin(); it!=str.end(); ++it)
res=res*256+(*it);
return res;
}
int main(int, char**){
std::cout<<hash(std::string("hello"))<<"\n";
std::cout<<hash(std::string("world"));
}
liuuuxin@WEIFANG ~/temp
$ g++ str_hash.cpp
liuuuxin@WEIFANG ~/temp
$ ./a
1701604463
1869769828