2

だから、私は脳死の瞬間を過ごしているので、簡単な質問.. std::hash<std::string>Googleのシティハッシュを使用するためにどのように上書き/置換できますか?

私の現在のアプローチは、ラッパーを持ち、そのためstd::stringに特化std::hash<>することです。しかし、実質的に同じインターフェースを実装するstd::string必要があり、これを避けたいので、これは苦痛です。

4

1 に答える 1

5

既存の特殊化を置き換えることはできません。つまり、置き換えることはできませんstd::hash<std::string>。ただし、コンテナーで別のハッシュ関数オブジェクトを使用できます。たとえば、次のようになります。std::unordered_*

std::unordered_map<std::string, T, my_hash> hash_map;
于 2014-06-20T15:30:31.623 に答える