Вы можете использовать пропускающий итератор (также называемый пошаговым итератором) с std::for_each
(или аналогичным алгоритмом).Однако в стандартной библиотеке нет общих итераторов пропуска.
Если вы хотите самостоятельно реализовать итератор пропуска, идея проста: напишите шаблон, который принимает итератор в качестве аргумента.Этот шаблон является итератором "адаптера".Передайте большую часть шаблона итератора адаптированному итератору, но реализуйте пользовательский оператор приращения, который пропускает элементы на основе ваших критериев.
Хотя адаптеры итератора можно использовать повторно, а существующие реализации доступны, простой цикл может быть оченьменьше работы:
for(size_t i = 0; i < v.size(); i += N)