C++中嵌套for循环的替代方法是什么?

C++中嵌套for循环的替代方法是什么?,c++,for-loop,C++,For Loop,在Python中,代码如下所示: for i in range(1, 10): for j in range(1, 10): # Do something here from itertools import product for i, j in product(range(1, 10), repeat=2): # Do something here 可以用如下代码替换: for i in range(1, 10): for j in range(1, 10):

在Python中,代码如下所示:

for i in range(1, 10):
  for j in range(1, 10):
    # Do something here
from itertools import product
  for i, j in product(range(1, 10), repeat=2):
    # Do something here
可以用如下代码替换:

for i in range(1, 10):
  for j in range(1, 10):
    # Do something here
from itertools import product
  for i, j in product(range(1, 10), repeat=2):
    # Do something here

在C++中是否存在一些等价关系?

< P>我可以想到至少2种方式

由于缺少更好的名称而出现的for循环

for(int i =0, int j=0 ; i < 10 && j < 10;i++, j++) {
}
B在C中使用本

中提到的for循环非常简单,可以适应各种需要,init的语法;条件increment接受所有3个字段中的函数调用,允许您模拟任何迭代模式,只需将代码放在其中,调用生成每个循环所需信息的函数即可


由于这种可能性,像Python中那样使用范围是不常见的。在C语言中,循环时计算每个索引更有意义。

可以尝试执行while或while for nested loopsWell,itertools.product不是嵌套for循环的真正替代品,它是嵌套for循环的特定模式的替代品。无论如何,它可以通过定义一些特殊迭代器来完成,但是在标准库中没有准备好的东西。没有专门的语言特性来完成这个任务,但是可以编写实现它的C++脚手架。问题是它比嵌套循环效率低,编译器的优化更难,而且对其他C++程序员来说非常恼人。Eric Lippert的range-v3或相应的TS听起来像您正在寻找的。您的示例A不一样-它将执行10次,而不是100次-并且在每次迭代中I==j。