日期:2014-05-16  浏览次数:20871 次

linux hash_map<string, double>,调用find(string)方法出错?
代码如下:
C/C++ code

#include <string>
#include <ext/hash_map>

using namespace std;
using namespace __gnu_cxx;

int main(int argc, char** argv)
{
  hash_map<string, float> hm;
  hm.insert(pair<string,float>(string("aaa"), 2.9));

  string tmp = "aaa";
  hm.find(tmp); //这里报错了,hashtable.h:596 错误:xxxxxxxxx 调用没有匹配??????


  return 0;
}



哪位大侠知道是怎么回事呢?

------解决方案--------------------
探讨

引用:
代码如下:
C/C++ code

#include <string>
#include <ext/hash_map>

using namespace std;
using namespace __gnu_cxx;

int main(int argc, char** argv)
{
hash_map<string, float>……

------解决方案--------------------
定义的时候这样:
C/C++ code
hash_map<string, float,str_hash> hm;

------解决方案--------------------
linux没有hash_map,都是被淘汰的东西,在这里有个东西叫做unorderd_map.