[英]Can I use std::minmax_element in a member initializer list?
[英]Why need std::minmax_element?
為什么我們需要std::min_element
和std::max_element
的組合版本用於std::minmax_element
? 它只是用於保存比較或其背后的其他好處嗎?
std::min_element
和std::max_element
需要在返回之前遍歷整個容器。 如果你使用std::min_element
后跟std::max_element
那么這是兩次遍歷,而如果你使用std::minmax_element
則只需要一次。
所以,是的,它只是“只是”用於保存比較,但我認為將所需的工作量減半,以便在不損失清晰度的情況下檢索所需的數據是非常值得的。
檢查參考頁面 。
它列出了兩個不同之處 :
這個算法不同於
std::make_pair(std::min_element(), std::max_element())
,不僅在效率方面,而且在這個算法找到最后一個最大的元素,而std::max_element
找到第 一個最大的元素元件。
提到的效率增益是因為std::minmax_element
只需要處理一次數據,而運行std::min_element
和std::max_element
需要兩次處理數據。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.