我想讀取單詞列表並將它們保存在C++ STL hash_map以及它們在按字母順序排序的文件中的位置。這個想法後來我需要能夠判斷一個字符串是否是一個單詞,以及它是在一個單詞之前還是之後出現。C++讀取文件到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++));
}
我遇到的問題是它沒有保存實際的單詞。下面的for loop
列出了所選單詞,但iter->first
始終爲空。我錯過了什麼?
__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++;
}