首页 > 解决方案 > 具有多个独立参数的 C++ For 循环

问题描述

有没有办法在 C++ 中编写类似的东西

    for(int a1=0; a1<n;a1++)
    { 
        for (int a2 = 0; a2 < m; a2++)
        {
          some stuff
        }
        
    }

在一个循环中。我已经看到了类似的东西

for(int i =0, int j=0; i<n && j<m; i++,j++)

但我希望增量是独立的而不是同步的。

标签: c++for-loop

解决方案


这是使用 range-v3 的一种方法:

namespace rv = ranges::views;

for (auto [a1, a2] : rv::cartesian_product(rv::iota(0, n), rv::iota(0, m)))
  // use a1 and a2

这是一个演示

您可以通过向rv::cartesian_product.


推荐阅读