J'essaie de lire dans une liste de mots et de les enregistrer dans une hash_map C++ STL avec leur position dans le fichier trié par ordre alphabétique. L'idée est plus tard je vais devoir être capable de dire si une chaîne est un mot et si elle vient avant ou après un mot différent.C++ Lire le fichier dans hash_map
ifstream f_dict ("dictionary.txt");
__gnu_cxx::hash_map <const char*, int> dictionary;
string temp_str;
int counter = 0;
while (!f_dict.eof()) {
f_dict >> temp_str;
dictionary.insert(make_pair(temp_str.c_str(), counter++));
}
Le problème que je rencontre est qu'il ne sauvegarde pas le mot actuel. Le for loop
ci-dessous imprime une sélection de mots, mais iter->first
est toujours vide. Qu'est-ce que je rate?
__gnu_cxx::hash_map<const char*, int>::iterator iter;
int i = 0;
for (iter = dictionary.begin(); iter != dictionary.end() && i < 150; iter++) {
cout << "word: " << iter->first << " index: " << iter->second << "\n";
i++;
}