循环内的迭代器不会递增
Iterator inside of loop will not increment
>我正在尝试比较两个字符串数组。每当我到达 if 语句中的 while 循环时,我都会陷入无限循环,因为即使我在循环中有一个迭代器,它也不会递增。我在循环中有cout<< finder;
只是为了看看查找器的位置,它永远不会超过零。如果有人能帮忙,我将不胜感激。
if (memory[p] == "J")
{
if (is_number(memory[p+1]))
{
worker = atoi(memory[p+1].c_str());
p = worker;
continue;
}
else
{
int finder = 0;
while (memory[p+1] != Symtablelab[finder])
{
cout << finder;
finder = finder + 1;
}
if (memory[p+1] == Symtablelab[finder])
{
int k = Symtablepos[finder];
worker = atoi(memory[k].c_str());
p = worker;
continue;
}
}
}
你说finder
永远不会递增到零以上。它是否打印查找器 = 0?如果是这样,则意味着
memory[p+1] = Symtablelab[1]
就在第一次迭代之后,所以 while 循环被终止,finder
坚持在 1。
编辑如果你说,它在 while 语句中连续打印finder = 0
,那么你可能在外部for
或while
(循环)语句中if (memory[p] == "J")
。
如果它是连续打印查找器并且它是 0,那么我必须问你发布的整个代码片段是否包含在你没有发布的 while 语句中。如果循环卡在无限循环中,那么您发布的语句中包含的 while 循环不会增加 finder 是绝对没有意义的。
或者另一种可能性是 Symtablelab 覆盖了"["]"运算符。如果这些事情都不是真的,那么就会发生一些令人难以置信的不稳定的事情。
相关文章:
- 对于set上的循环-获取next元素迭代器
- 将多个 for 循环组合成单个迭代器
- 使用一个 for 循环如何迭代和测试迭代器值?
- 转到基于范围的 for 循环中的下一个迭代器
- C++:返回一个基于范围 for 循环迭代器,其中包含继承对象
- 在分配和发布递增循环迭代器时C++无限循环(gcc 错误?
- 具有迭代器和自定义步长的循环结束条件
- 映射中循环的迭代器
- 在向量中使用迭代器循环
- C++ 迭代器循环与索引循环
- 使用相同的迭代器循环遍历两个 std::vector
- 我可以用cout而不是迭代器循环打印STL映射吗?
- 迭代器与非迭代器循环,不同的输出,C++
- 将迭代器循环调用end()多次
- 用于 STL 可迭代对象的迭代器循环的宏
- c++中通过迭代器循环遍历数组
- 嵌套迭代器循环,为什么迭代器是相等的?——c++
- 在多线程程序中使用迭代器循环hash_map
- 迭代器循环不计算最后一项
- 如何访问C++列表迭代器循环中的"previous"元素?