遍历数组的一部分
Iterate over a part of an array
遍历数组的一部分的最佳方法是什么?我想遍历数组的前 4 个元素,然后分别遍历数组的后 4 个元素。以下代码是最好的方法吗?请帮忙。
void function() {
int arr[8] = {a1, a2, a3, a4, b1, b2, b3, b4};
int arr_num = 8;
for (int i = 0; i < arr_num/2; i++) {
if (arr[i] == a1) {
// publish something
} else if (arr[i] == a3) {
// publish something
}
}
for (int i = 5; i < arr_num; i++) {
if (arr[i] == b1) {
// publish something
} else if (arr[i] == b3) {
// publish something
}
}
}
你可以这样做:
int i = 0;
for ( ; i < arr_num / 2; ++i ) { // leave the initialization section empty, "i" is already 0
//...
}
for ( ; i < arr_num; ++i ) { // "i" already has the correct value from above loop
// ...
}
这样 i
在循环之间保留其值,并且对于不同大小的数组更通用。
遍历数组的一部分的最佳方法是什么?我想遍历数组的前 4 个元素,然后分别遍历数组的后 4 个元素。以下代码是最好的方法吗?请帮忙。
void function() {
int arr[8] = {a1, a2, a3, a4, b1, b2, b3, b4};
int arr_num = 8;
for (int i = 0; i < arr_num/2; i++) {
if (arr[i] == a1) {
// publish something
} else if (arr[i] == a3) {
// publish something
}
}
for (int i = 5; i < arr_num; i++) {
if (arr[i] == b1) {
// publish something
} else if (arr[i] == b3) {
// publish something
}
}
}
你可以这样做:
int i = 0;
for ( ; i < arr_num / 2; ++i ) { // leave the initialization section empty, "i" is already 0
//...
}
for ( ; i < arr_num; ++i ) { // "i" already has the correct value from above loop
// ...
}
这样 i
在循环之间保留其值,并且对于不同大小的数组更通用。