使用hash_map时,自实现了一个hash函数容器
struct StringHasher
{
size_t operator()(const string& inStr)
{
int hash = 1;
for (int i = 0; i < inStr.size(); ++i)
{
hash = (31 * hash) + int(inStr[i]);
}
return static_cast<size_t>(hash);
}
};
构造了 hash_map结构:
hash_map<string, string, StringHasher> m_wcharRegularTbl
但使用时,却会报错
error: passing `const StringHasher' as `this' argument of `size_t StringHasher::operator()(const std::string&)' discards qualifiers
原因是
size_t operator()(const string& inStr)
后未加const修饰