Самый простой подход, который я могу придумать, состоит в том, чтобы название каждой страны вычисляло сумму значений ASCII в ее представлении и использовало это в качестве хеш-значения:
int hash(const char *s)
{
int h = 0;
while (s && *s)
h += *s++;
return h;
}
Если ваша хеш-карта имеет размер N, вы храните названия стран с map[hash(my_country) % N] = my_country
.Концептуально.
Просто попробуйте этот подход и посмотрите, достаточно ли равномерно распределены полученные хеш-значения.Обратите внимание, что качество распределения также может зависеть от N.