0

forループを使用してcharベクトルを設定しようとしているときに、「Vector iterator not incrementable」というエラーが発生しました。ループは、最初のベクトルをチェックして正しい文字がインデックス付けされている場所を確認し、それに応じて同じインデックスの文字を 2 番目のベクトルに入力しすぎます。ループ内の何かがこのエラーの原因ですか?

    for (filler = word.begin(); filler != word.end(); filler++)
    {
        if (*filler == letter)
            guess.insert(filler, letter);
    }
4

1 に答える 1

0

フィラーは、ベクトル「単語」への反復子です。フィルターは推測を指していないため、推測への挿入の最初の引数として使用することはできません。

同じインデックスに表示したい場合は、フィラー - word.begin() でインデックスを再構築できます。次に、それを使用して推測にインデックスを付けることができます

for (filler = word.begin(); filler != word.end(); filler++)
{
    if (*filler == letter)
        guess.insert(guess.begin() + (filler - word.begin()), letter);
}
于 2013-09-02T06:35:19.803 に答える