1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
|
#include <iostream>
#include <unordered_map>
struct HashStringFunc
{
size_t operator()(const char* Key) const
{
std::cout << "Fonction de hash pour const char*" << std::endl;
size_t Val = 2166136261U;
size_t First = 0;
size_t Last = strlen(Key);
size_t Stride = 1 + Last / 10;
for(; First < Last; First += Stride)
Val = 16777619U * Val ^ (size_t) Key[First];
return (Val);
}
};
int main()
{
typedef std::unordered_map<const char*, int, HashStringFunc> HashString;
HashString m;
m["ddd"] = 1;
m["edd"] = 1;
HashString::const_iterator it = m.find("ddd");
std::cout << it->first;
} |
Partager