对于不递增的循环
For loop not incrementing
很抱歉,这是一个快速的问题,有人能说出为什么for循环没有递增i或j吗?他们停留在0和1。
void Environment::tourneyselection(std::vector<Tree>& popvec) {
std:random_shuffle(popvec.begin(), popvec.end());
for (int i = 0, j = 1; j <= Popsize; i + 2, j + 2) {
std::cout << popvec[i].fitness << " and " << popvec[j].fitness << ":";
if (popvec[i].fitness < popvec[j].fitness) {
popvec.erase(popvec.begin() + i);
std::cout << " erase " << i << std::endl;
}
else {
popvec.erase(popvec.begin() + j);
std::cout << " erase " << j << std::endl;
}
}
}
感谢
j + 2
您根本没有修改j
。你想说
j += 2
i + 2
也是如此。
i + 2
和j + 2
都没有进行赋值,您正在执行计算,但没有将结果分配给i
或j
尝试i += 2
和j += 2
或者,如果你想保持简单或只是把它分解一下——试试i = (i + 2)
和j = (j + 2)
+=
运算符允许您执行计算,同时分配结果。
相关文章:
- 我可以使用什么来停止循环而不是"返回 0"?
- 如何将记忆应用于此递归函数?
- 无穷大而循环时具有递归函数
- 为什么 GCC 不能假设 std::vector::size 在这个循环中不会改变?
- C++ Code 在 for 循环期间不会累积变量中的总和,仅提供最终迭代值
- CAFFE转发网络在for循环中不起作用
- 如何在C++中创建 if else 循环而不是多个嵌套?
- 为什么这个 IF 语句在循环内不打印
- 为什么我的 while 循环永远不会在 C++ 中的数字猜测游戏中结束?
- 嵌套的循环现在不起作用
- 对于循环计数器不递增
- 如何使用循环编写此递归
- 程序在终止循环后不接收输入
- 为什么循环退出不会?
- 使用 while 循环时不显示窗口
- 跳过整个循环而不运行 while
- if/else 循环:C++程序:不会显示最终提示/最终循环
- 何时使用 if 语句选择多个循环而不是单个循环
- 为什么基于循环范围不直接在C 中使用参数阵列
- 有没有一种方法可以使用弗洛伊德-沃歇尔算法给出最短路径,其中存在负权重循环而不允许重叠边缘?