具有 2 个变量的 for 循环是否有可能在满足条件时停止仅递增其中一个变量?例如
for(int i = 0, j = 0; i < 5 && j < 10; i++, j++)
{
cout << i << " " << j << endl;
}
输出看起来像
0 0
1 1
2 2
3 3
4 4
4 5
4 6
4 7
4 8
4 9
这是我的实际代码。我想要两个变量的条件
cout << sp.dets.size() << " " << gt.groundtruth.size() << endl;
for (int i = 0, j = 0; i < sp.dets.size() && j < gt.groundtruth.size(); j < gt.groundtruth.size() ? j++ : j, i < sp.dets.size() ? i++ : i)
{
cout << i << " " << j << endl;
}
sp.dets.size = 0
gt.groundtruth.size() = 8
如果解决方案适用于任何数字,即 i > j or i < j or i = 0 or j = 0
,那就太好了
最佳答案
您可以使用三元语句来增加变量i
的值。如下所示:
for(int i = 0, j = 0; i < 5 && j < 10; j++, i<4? i++: i)
{
cout << i << " " << j << endl;
}
这将输出预期的结果。
关于c++ - 多变量for循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40715102/