¿Por qué std :: max_element requiere un ForwardIterator?

La biblioteca estándar de C ++max_element El algoritmo requiere que los iteradores pasen como entradas al modelo.ForwardIterator.

Mi entendimiento es queForwardIterator refinaInputIterator especificando que puede utilizar unaForwardIterator para iterar en el mismo rango varias veces. Por lo tanto, los algoritmos de paso múltiple requierenForwardIterators.

Sin embargo,max_element no es un algoritmo de múltiples pasadas, es suficiente para iterar sobre un rango una vez para determinar su elemento máximo. Entonces, ¿por quémax_element necesita las capacidades adicionales deForwardIterator?

Respuestas a la pregunta(1)

Su respuesta a la pregunta