Почему для std :: max_element требуется ForwardIterator?

Стандартная библиотека C ++max_element алгоритм требует, чтобы итераторы передавались в качестве входных данных для моделированияForwardIterator.

Я понимаю, чтоForwardIterator рафинируетInputIterator указав, что вы можете использоватьForwardIterator итерировать один и тот же диапазон несколько раз. Поэтому многопроходные алгоритмы требуютForwardIterators.

Тем не мение,max_element не является многопроходным алгоритмом - достаточно итерировать диапазон, чтобы определить его максимальный элемент. Так почему жеmax_element нужны дополнительные возможностиForwardIterator?

Ответы на вопрос(1)

Ваш ответ на вопрос