当前位置: 技术问答>linux和unix
linux hash_map<string, double>,调用find(string)方法出错?
来源: 互联网 发布时间:2017-01-22
本文导语: 代码如下: #include #include using namespace std; using namespace __gnu_cxx; int main(int argc, char** argv) { hash_map hm; hm.insert(pair(string("aaa"), 2.9)); string tmp = "aaa"; hm.find(tmp); //这里报错了,hashtable.h:596 错误:x...
代码如下:
哪位大侠知道是怎么回事呢?
#include
#include
using namespace std;
using namespace __gnu_cxx;
int main(int argc, char** argv)
{
hash_map hm;
hm.insert(pair(string("aaa"), 2.9));
string tmp = "aaa";
hm.find(tmp); //这里报错了,hashtable.h:596 错误:xxxxxxxxx 调用没有匹配??????
return 0;
}
哪位大侠知道是怎么回事呢?
|
hash_map当时有扩展类型,如string类型时,应该指定 hash函数。
string类型一般使用:
struct str_hash{
size_t operator()(const string& str) const
{
unsigned long __h = 0;
for (size_t i = 0 ; i