我在我的一个cpp文件中有这个方法,我已经导航了我的失败。我还添加了cout语句并检查foo和mainWord中是否有内容。我认为我的问题与我如何向foo添加元素或者我是如何重新添加它们有关。大小mainWord是88,foo的大小超过1000.这是我向foo添加元素的地方:
while (myfile>>magic)//store the colours in an array
{
foo.push_back(magic);
}
这是我尝试更改它们并将它们重新添加的地方。
void Penguin::addWord(std::vector<int> foo)
{
unsigned fooCounter=0;
int temp;
for (int i=0;i<88;i+2)
{
if(foo.at(fooCounter) == 11111111 && foo.at(fooCounter) != NULL)
{
if(mainWord[i]==1 && mainWord[i+1]==1)
{
foo.at(fooCounter) = 11111111;
}
else if(mainWord[i]== 1 && mainWord[i+1] == 0)
{
foo.at(fooCounter) = 11111110;
}
else if(mainWord[i]== 0 && mainWord[i+1] == 1)
{
foo.at(fooCounter) = 11111101;
}
else
{
foo.at(fooCounter) = 11111100;
}
}
else if (foo.at(fooCounter) == 11111111 && foo.at(fooCounter) != NULL)
{
if(mainWord[i]== 1 && mainWord[i+1] == 1)
{
foo.at(fooCounter) = 00000011;
}
else if(mainWord[i]== 1 && mainWord[i+1] == 0)
{
foo.at(fooCounter) = 00000010;
}
else if(mainWord[i]== 0 && mainWord[i+1] == 1)
{
foo.at(fooCounter) = 00000001;
}
else
{
foo.at(fooCounter) = 00000000;
}
}
fooCounter++;
}
}
我不断收到错误消息:“调试断言失败。矢量下标超出范围” ......请帮忙
答案 0 :(得分:4)
您有一个无限循环,因为i
循环中永远不会更新for
。你需要修正错字:
for (int i=0;i<88;i+=2)
^
^