¿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 requierenForwardIterator
s.
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
?