Bonjour,
Je suis en train de développer une petite IA d'échecs en C++, et pour les besoins du programme, je veux utiliser une table de hachage, pour l'instant assez simple. Pour cela, comme std::map ne me convient pas (structure d'arbre binaire en interne), je me fait une petite classe template moi-même. Seulement j'ai une erreur à la compilation que je ne comprends pas...
Le code en question est :
Code :
- // Renvoie la valeur associée à la clé passée en paramètre
- template <typename Key, typename Value> bool hash_table<Key, Value>::find_key(Key k, Value &res)
- {
- unsigned int index = k % taille;
- std::list< std::pair<Key, Value> >::iterator it = vect[index].begin();
- while(it != vect[index].end())
- {
- if(it->first == k)
- {
- res = it->second;
- return true;
- }
- ++it;
- }
- return false;
- }
|
avec
Code :
- vector<list<pair<Key, Value> > > vect;
|
comme membre privé de la classe.
Le message renvoyé par g++ (4.1.2) à la compilation est :
hash_table.cpp: In member function bool hash_table<Key, Value>::find_key(Key, Value& ):
hash_table.cpp:31: error: expected `;' before it
hash_table.cpp:33: error: it was not declared in this scope
|
Pouvez-vous m'éclairer sur ceci ?
Merci d'avance