Как хэшировать трехмерный двумерный массив?

Рассмотрим следующий код. Какая функция хэширования для массива в Key будет использоваться в неупорядоченной карте?

#include <unordered_map>

using namespace std;

enum TriState {
    S0 = -1,
    S1 = 0,
    S2 = +1
};

struct K { // Key for the map
    TriState a[8][8];
    bool operator==(const K& k1) const {
        for (int i = 0; i < 64; i++)
            if (k1.a[0][i] != a[0][i])
                return false;
        return true;
    }
};

struct Hash {
    size_t operator()(const K& k) const {
        size_t s;
        // s = what is a good hash value?
        return s;
    }
};

unordered_map<K, int, Hash> m;
5
задан Martin 16 December 2011 в 14:37
поделиться