【发布时间】:2013-08-31 05:10:45
【问题描述】:
在尝试使用 for 循环填充 char 向量时遇到了这个错误,“Vector iterator not incrementable”。该循环应该检查第一个向量中每个正确字母的索引位置,然后相应地用相同索引处的字母填充第二个向量。循环中有什么东西导致了这个错误吗?
for (filler = word.begin(); filler != word.end(); filler++)
{
if (*filler == letter)
guess.insert(filler, letter);
}
【问题讨论】:
-
您不能将一个向量的迭代器用于另一个向量的函数。只需使用
std::copy_if。 -
@chris 我不熟悉 copy_if。在阅读了关于我尝试“copy_if(word.begin(),word.end(),guess.begin(),字母);”之后但这会导致另一个错误 C2064。越来越近了?
-
@user2734876, 你需要一个谓词函数。
-
@chris 所以要检查“字母”和迭代器引用是否相同?好吧,让我试一试。谢谢。