axis, где x,y,z записаны подряд. И я разделяю координаты по трем векторам. Но мне как то не нравится код.
for(auto i = 0, cnt = 0; i < axis.size(); ++i, ++cnt) {
switch (cnt) {
case 0:
x.emplace_back(axis[i]);
break;
case 1:
y.emplace_back(axis[i]);
break;
case 2:
z.emplace_back(axis[i]);
cnt = -1;
break;
}
}
Самое первое, что бросается в глаза - нет необходимости использовать два счётчика, красивее брать i % 3 вместо cnt(но теоретически тут может вылезти инструкция деления, лишняя в данном случае, если оптимизатор не соптимизирует)
А как координаты изначально в этот вектор попадают?
Это не важно, такой api.
Тогда как будто бы сильно вариантов нет. Выше Антон предложил, как упростить
Обсуждают сегодня