C++ min/max_element 非常快的查最值函數用法

C++ min/max_element 非常快的查最值函數用法

同樣是O(n)複雜度,但是經過不嚴謹 測試,使用庫函數的速度遠超for循環的遍歷找最值

/*
param begin : 序列起始地址(迭代器)
param end   : 序列結束地址(迭代器)
return      : 序列中最小元素地址(迭代器)
*/
min_element(begin, end);
/*
param begin : 序列起始地址(迭代器)
param end   : 序列結束地址(迭代器)
return      : 序列中最大元素地址(迭代器)
*/
max_element(begin, end);

注意:
接收的參數是容器的首尾地址(迭代器)(可以是一個區間)
返回的是最值元素的地址(迭代器),需要減去序列頭以轉換爲下標

示例:
在這裏插入圖片描述

#include <iostream>
#include <algorithm>

using namespace std;
#define len 7

int main()
{
	int a[7] = {11, 4, 51, 41, 91, 98, 10};
	int min_idx = min_element(a, a+len) - a;
	int max_idx = max_element(a, a+len) - a;
	cout<<min_idx<<" "<<a[min_idx]<<endl;
	cout<<max_idx<<" "<<a[max_idx]<<endl;
	
	return 0;
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章