Почему хеш-функция возвращает size_t и как она используется?

Я понимаю математическую основу хеш-таблиц. У меня есть хеш-функция (которую я где-то нашел) ниже:

/* Fowler / Noll / Vo (FNV) Hash */
static const size_t InitialFNV = 2166136261U;
static const size_t FNVMultiple = 16777619;
size_t myhash(const string &s, int length)
{
    size_t hash = InitialFNV;
    for(size_t i = 0; i < length; i++)
    {
        //XOR the lower 8 bits
        hash = hash ^ (s[i]);

        //Multiply by the multiple
        hash = hash * FNVMultiple;
    }
    return hash;
}
  1. Почему это возвращает size_t ?
  2. Как можно использовать это, чтобы написать store () функция, которая помещает строка в хеш-таблице?
  3. Как это можно адаптировать для массива символов?
  4. Что касается №3, можно ли заменить цикл for с циклом while , который заканчивается символом '\ 0' ?

К вашему сведению, я готовлюсь к второму собеседованию, и поэтому я спрашиваю.

5
задан Puppy 18 June 2011 в 10:39
поделиться