私はアマチュアですので、私と一緒にご負担ください。STLリスト<Object>リスト内のオブジェクトを変更するイテレータ
このコードはうまくいきますが、デバッグするときに、プロシージャがforループに到達したときに存在し、その内部にあるものを実行しないことは明らかです(これは私が行う必要があります)。
void insertWord(list<Word> &words, string str)
{
list<Word>::iterator itr;
for (itr = words.begin(); itr != words.end(); itr++) //EXITS HERE
{
if (str == (*itr).aWord)
{
(*itr).iterateCount();
return;
}
if (str > (*itr).aWord)
{
words.push_back(Word(str));
return;
}
}
}
forループが実行されない理由はわかりません。関数の最後までスキップします。
NB: "Word"は文字列とint(その文字列がいくつあるか)を保持するカスタムクラスです。 これ以上の情報が必要な場合は、私はここで死にたい!おかげさまで
あなたはリストに要素が含まれていますか? – juanchopanza
あなたの関数のロジックによると、 'return'は' continue'に変更する必要があります – user2k5
無関係: '(* itr).foo'の代わりに' itr-> foo'を書くことができます。 –