在C++ max_element
中,如果有多個最大元素,則返回第一個這樣的元素。而minmax_element
(C++ 11起)返回最後一個最大元素。C++中max_element和minmax_element的行爲差異STL
這種行爲的標準是否存在原因?
從cplusplus.com
如果多於一個當量的元件具有最大的值,所述第二迭代器指向最後一個這樣的元件。
使用第一版本的運算符<或第二版本的comp進行比較;如果沒有其他元素的比較小於一個元素,則元素是最大的。如果多個元素滿足這個條件,則迭代器返回指向這些元素的第一個元素的點。他們的圖書館的
[根據CPPReference,這是預期的行爲。](http://en.cppreference.com/w/cpp/algorithm/minmax_element)爲什麼這是預期的,我必須去游泳標準。 – user4581301
** [alg.min.max] **(修訂版n4594中的註釋30)規定這是法律。沒有理性上市。 – user4581301
更有趣的是,'minmax_element'對最小元素應用相反的策略(第一個返回)。 –