![]() |
1
5
可以编写递归函数来执行此操作: void loopn\u递归(int*min,int*max,int*counters,size\t N,size\t N,void(*func)(int*,size\t)){ 对于(int i=最小值[n];i<最大值[n];++i){ 计数器【n】=i; 如果(N-N>1){ loopn\u递归(最小、最大、计数器、N、N+1、func); }其他{ //最内层算法 func(计数器,N); } } } void loopn(int*min,int*max,int*counters,size\u t N,void(*func)(int*,size\u t)){ 断言(N>0); loopn\u递归(最小、最大、计数器、N、0、func); } //示例用法 无效测试(int*计数器,size\t N){ 对于(大小\u t j=0;j<N;++j){ printf(“%d”,计数器[j]); } putchar(“\n”); } loopn((int[]){1,2,3,4,5},(int[]){2,4,6,8,10},(int[5]){},5,test); |
![]() |
2
1
可以将N维空间表示为一维,并使用一个索引,如果需要,可以从中计算N个子索引。 下面我附上这种空间展平的示例实现
动态处理键/大小数组在此不适用。该示例显示了如何从展平空间计算子索引。 |
![]() |
3
0
如果您需要对真正的变量N执行操作,那么Patrick的递归操作就是一种方法。 如果你想做的是 固定的 变量N,并且您试图避免重复键入for loop,可以使用宏保存一些击键:
|
![]() |
Rhys · 通过列表理解修改列表中的列表 7 年前 |
|
vikiridi · 嵌套循环,第二个循环基于第一个循环的长度 7 年前 |
![]() |
Sansk · 避免Python中的嵌套for循环 7 年前 |
![]() |
MidnightP · C#UWP填充和访问嵌套列表 7 年前 |
![]() |
CQM · 排序两个关联数组/堆栈 7 年前 |