Warum benötigt std :: max_element einen ForwardIterator?

Die C ++ - Standardbibliothekmax_element Der Algorithmus erfordert, dass die Iteratoren als Eingaben an das Modell übergeben werdenForwardIterator.

Mein Verständnis ist dasForwardIterator verfeinertInputIterator indem Sie angeben, dass Sie aForwardIterator mehrmals über denselben Bereich iterieren. Daher erfordern MehrfachdurchlaufalgorithmenForwardIterators.

Jedoch,max_element ist kein Mehrfachdurchlauf-Algorithmus - es reicht aus, einen Bereich einmal zu durchlaufen, um sein maximales Element zu bestimmen. Warum also?max_element Ich brauche die zusätzlichen Fähigkeiten vonForwardIterator?

Antworten auf die Frage(1)

Ihre Antwort auf die Frage