【发布时间】:2016-03-24 13:29:35
【问题描述】:
int i = 0;
for(; i<size-1; i++) {
int temp = arr[i];
arr[i] = arr[i+1];
arr[i+1] = temp;
}
这里我从数组的第一个位置开始。如果在循环之后我需要再次执行 for 循环,其中 for 循环从数组的下一个位置开始,该怎么办?
赞第一个for loop 起始于:Array[0]
第二次迭代:数组[1]
第三次迭代:数组[2]
例子:
对于数组:1 2 3 4 5
对于 i=0:2 1 3 4 5、2 3 1 4 5、2 3 4 1 5、2 3 4 5 1
对于 i=1:1 3 2 4 5、1 3 4 2 5、1 3 4 5 2 依此类推。
【问题讨论】:
-
这称为嵌套 for 循环。
-
了解更多信息:我正在使用的代码:link
-
你想达到什么目的?您要求一种方法来测试数组或列表之前是否已排序:stackoverflow.com/questions/35989316 和 stackoverflow.com/questions/35867423 — 您是否正在生成数组的所有可能排列以找到已排序的排列?
-
对您的代码的一些批评:例如,您应该改掉使用
int arr[]参数的习惯,改用int* arr。int arr[size]不标准;不是通过new分配的数组必须有一个常量作为它们的大小。std::vector在这里更适合你。 -
@CiaPan 完全正确!!!。你有什么想法可以实现吗?