いくつかの単語を取り込んでベクターに格納し、並べ替えてから、各単語の出現回数を数えて出力する次のコードがあります。
typedef vector<double>::size_type vec_sz;
vector<string> words;
string c;
cout << "Enter some words!" << endl << endl;
while (cin >> c) {
words.push_back(c);
}
vec_sz size = words.size();
sort(words.begin(), words.end());
string current_word = words[0];
int count = 1;
for (int i = 1; i < size; i++) {
if (words[i] == current_word) {
count++;
}
else {
cout << "The word " + current_word + " appears " << count << " times." << endl;
current_word = words[i];
count = 1;
}
}
私はいくつかの言葉を入力します:
word
word
lol
hello
lol
word
hello
^Z
次に、次の出力を取得します。
The word hello appears 2 times.
The word lol appears 2 times.
しかし、最終的な単語セットには決して到達しません。ベクター内の各要素を出力するようにループを変更したところ、すべての要素が出力されました。しかし、何らかの理由で、このループは単語の最終セットに到達したくありません。何がうまくいかないのですか?