0

源码了解情况:

struct s { 
    int i; 
    float f 
};
const int cnt = 10;

s *source = new s[cnt];
/*... fill source ...*/

int *dest_i = new int[cnt];
float *dest_f = new float[cnt];

for (int x = 0; x < cnt; x++) {
    dest_i[x] = source[x].i;
    dest_f[x] = source[x].f;
}

那么,问题来了:有没有比用循环遍历数组更快的方法?

4

1 回答 1

1

你可以展开你的循环。这就是我能想到的。

自己编写是一个相当没有意义的优化,如果你启用它,编译器可以尝试为你做(在 gcc 中,编译--funroll-loops

于 2013-04-05T05:23:42.457 回答