struct HASH_CMP {
bool operator()(vector<int> V, vector<int> W) const {
for(int i = 0; i < 10; i++)
if(V[i] != W[i]) return false;
return true;
}
};
hash_map< std::vector<int>, int, HASH_CMP > H;
long long inHash(const vector<int> &V) {
if(H.find(V) == H.end()) return -1; //this line
return H[V];
}
我已經宣佈了下述散,給上述比較級和我收到該行錯誤提到說:的hash_map < vector<int>,使用int>的錯誤,當查找功能
敵不過調用'
(const HASH_CMP) (const std::vector<int, std::allocator<int> >&)
我需要一些幫助來解決這段代碼。
你從來沒有寫過[哈希函數](http://www.sgi.com/tech/stl/HashFunction.html)(返回一個'size_t')。如果您有辦法對其進行哈希處理,您只能將其放在哈希映射中。 – 2013-03-19 10:20:04
我相信你希望通過引用'operator()'中的'const'來接受你的向量。' – 2013-03-19 10:20:08
順便說一句,對於'std :: vector',有一個相等比較運算符=='。它與你的完全不一樣,但它可能是有用的。 – juanchopanza 2013-03-19 10:55:55