最近在使用hash_map 的时候发现不能自定义hash 函数,只要这样的话,就会出问题,hash_map, eqstr> day ;但是如果这样的话就不会有问题了,还望大神求解呀 hash_map days;
#include
#include
#include
using namespace std;
struct eqstr //定义比较函数,字符串的比较函数需要单独定义
{
bool operator()(const char* a1, const char* a2) const
{
return strcmp(a1,a2)==0;
}
};
int main()
{
hash_map, eqstr> days;
days["january1"] = 31;
days["january2"] = 41;
days["january3"] = 61;
days["january4"] = 51;
hash_map<const char*, int, hash<const char*>, eqstr>::iterator ite1=days.begin();
hash_map<const char*, int, hash<const char*>, eqstr>::iterator ite2 = days.end();
for (; ite1 != ite2; ++ite1)
{
cout << ite1->first << endl;
}
system("pause");
return 0;
}
。