Можно ли найти средний итератор между двумя итераторами по аналогии с индексами?

Можно ли найти средний итератор между двумя итераторами по аналогии с индексами? А так же проверить, первый итератор "больше или меньше" второго, так же по аналогии с индексами.


Ответы (1 шт):

Автор решения: Harry

Ну... В общем случае что-то типа

...::iterator first, last;
...
advance(first,distance(first,last)/2);

Правда, надо гарантировать, что first находится до last, ибо

The behavior is undefined if last is not reachable from first by (possibly repeatedly) incrementing first.

→ Ссылка