Por que o std :: max_element requer um ForwardIterator?

A biblioteca padrão C ++max_element algoritmo requer que os iteradores passem como entradas para modelarForwardIterator.

Meu entendimento é queForwardIterator refinaInputIterator especificando que você pode usar umForwardIterator para iterar no mesmo intervalo várias vezes. Portanto, algoritmos de múltiplas passagens requeremForwardIterators.

Contudo,max_element não é um algoritmo de múltiplas passagens - é suficiente iterar um intervalo uma vez para determinar seu elemento máximo. Então, por quemax_element precisa dos recursos adicionais deForwardIterator?

questionAnswers(1)

yourAnswerToTheQuestion