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 requeremForwardIterator
s.
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
?