Je viens d'un pays Python/Java et j'essaie de bricoler en créant mon propre hashmap en C++.Puis-je comparer les objets vectoriels à NULL?
Lorsque je tente de vérifier comparer les emplacements des postes dans la table de hachage à NULL (lignes 6 et 11), je reçois l'erreur:
invalid operands to binary expression ('value_type' (aka 'HashEntry') and 'long')"
J'espère que quelqu'un peut me diriger dans la direction de ce que je fais mal et comment je peux le réparer.
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;
}
}
Edit 1: Déclaration hashArray
CustomHash::CustomHash(int m) {
this->size = m;
this->hashArray = vector<HashEntry>();
}
Le compilateur vous indique qu'il s'agit d'une erreur. Si vous affichez la déclaration de 'hasArray', quelqu'un pourrait être en mesure d'offrir une solution. –
'hashArray.count (temp)' – Justin
@Justin André écrit sa propre carte de hachage comme un exercice. Il est raisonnable de supposer que 'hashArray' est de ce type et non la carte de hachage standard. En tant que tel, vous ne pouvez pas supposer qu'il a la méthode 'count'. –