私はPython/Javaの土地から来て、私は自分のハッシュマップをC++で作ろうとしています。ベクトルオブジェクトをNULLと比較できますか?
私はNULL(ライン6および11)にハッシュテーブルにポジションの位置を比較するために、チェックしようとすると、私はエラーを取得:
invalid operands to binary expression ('value_type' (aka 'HashEntry') and 'long')"
私は誰かが私を操縦することができます願っています私が間違っていることの方向性とそれをどのように修正することができるかを示します。
void CustomHash::insert(HashEntry entry) {
int k = entry.getKey();
int i = 0;
int hashVal = hash_One(k);
int temp = hashVal;
while (i < size && hashArray[temp] != NULL) {
i++;
temp = (hashVal + i*hash_Two(k)) % size;
}
if (hashArray[temp] == NULL) {
hashArray[temp] = entry;
}
else {
cout << "Failure" << endl;
}
}
編集1:hashArray宣言を考える
CustomHash::CustomHash(int m) {
this->size = m;
this->hashArray = vector<HashEntry>();
}
コンパイラは、エラーであることを通知します。 'hasArray'の宣言を表示すると、誰かが解決策を提供できるかもしれません。 –
'hashArray.count(temp)' – Justin
@JustinAndréは演習として自分のハッシュマップを作成しています。 'hashArray'はその型であり、標準のハッシュマップではないと仮定するのは妥当です。したがって、 'count'メソッドがあると仮定することはできません。 –