独坐寒江边 2018-03-18 00:55 采纳率: 100%
浏览 976
已采纳

hash_map 自定义hash函数出错

最近在使用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;

}


图片说明

展开全部

  • 写回答

2条回答 默认 最新

  • threenewbee 2018-03-18 07:48
    关注
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)
编辑
预览

报告相同问题?