C++ 標準ライブラリのmax_elementアルゴリズムでは、モデルに入力として渡される反復子が必要ForwardIteratorです。
私の理解では、 aを使用して同じ範囲を複数回反復できることを指定することでForwardIterator絞り込むことができます。したがって、マルチパス アルゴリズムにはs が必要です。InputIteratorForwardIteratorForwardIterator
ただし、max_elementこれはマルチパス アルゴリズムではありません。最大要素を決定するには、範囲を 1 回反復するだけで十分です。では、なぜmax_elementの追加機能が必要なのForwardIteratorでしょうか?