“矢量迭代器不可递增”,在多个索引处填充矢量。

时间:2013-08-31 05:10:45

标签: c++ vector

尝试使用for循环填充char矢量时遇到此错误,“Vector iterator not incrementable”。该循环应该检查第一个向量,其中每个正确的字母被索引,然后它相应地填充第二个向量与相同索引处的字母。循环中的某些内容是否会导致此错误?

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

1 个答案:

答案 0 :(得分:0)

filler是向量“word”的迭代器。它不能用作插入猜测的第一个参数,因为过滤器不会指向猜测。

如果希望它出现在同一个索引处,可以使用filler - word.begin()重建索引。然后你可以使用它来索引猜测

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