2015-09-06 3 views

ответ

1

Правильный путь для продвижения итератора будет использовать std::advance или std::next

beg = std::next(beg, 3); 
std::advance(beg, 3); 

Метод приращение итератора с помощью += будет работать только с массивами (или контейнерами с random access iterators) из-за арифметику указателей.

+0

Это не похоже на меня (это то, что * только * правильный способ использовать метод, о котором вы упоминали). Я могу сделать то, что является beg + = 5; с итератором вектора, почему бы не установить? –

+0

@ Не знаю, что я только что редактировал, чтобы объяснить это. Это будет работать только для смежных контейнеров с итераторами произвольного доступа. – CoryKramer

+2

'+ =' применим к итераторам произвольного доступа, а не только к массивам –

Смежные вопросы