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