Свести массив структур в несколько массивов в Stack Overflow

Исходный код, чтобы понять ситуацию:

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;
}

Итак, вот вопрос: есть ли более быстрый метод, чем перебирать массив с циклом?

0

Решение

Вы можете развернуть свой цикл. Это все, что я могу думать о макушке головы.

Это довольно бессмысленная оптимизация, чтобы написать самому, компилятор может попытаться сделать это за вас, если вы включите его (в gcc, скомпилируйте с --funroll-loops)

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]