c++ - 多变量for循环

标签 c++ for-loop

具有 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/

相关文章:

c++ - 使用 QNetworkAccessManager::get() 时不需要自动内容转换

javascript - 这个 jquery 循环有什么问题?

python - 通过切片和 for 循环修改 Python 列表?

Python for循环迭代和访问列表列表

c++ - 通过 istringstream.getline() 调用的 SIGABRT

c++ - 矩阵模式。稀疏行运算符*(矩阵, vector )

c++ - 访问其他类中多个对象的私有(private)成员 vector

c++ - 不可内联的函数

javascript - 只有最后一个选择元素获取选项元素

python - 如何优化循环和条件语句?