有没有比下面简单的for循环更有效地获取数组中每个第二个(或者每个N个)元素的方法?例如,使用通用算法?
#include<iostream>
using namespace std;
int main()
{
const int a_size = 6, b_size = 3;
int a[a_size] = {1, 3, 6, 3, 2, 7};
int b[b_size];
int bx = 0;
for ( int ax = 0; ax < a_size; ++ax )
{
if (ax % 2 == 0)
b[bx++] = a[ax];
}
}
for (int ax = 0; ax < a_size; ax += 2)
或for (int ax = 0; ax < a_size; ax += N)
。其中 N 是您选择的一个常量值。 - vdenotarisbx
跟踪)。但是,如果相对于步骤(例如示例中的2)给出了错误的b_size
值,则目标数组中将存在未初始化的值。 - Luis Machuca