C++ STL非更易型算法min_element、max_element、minmax_element使用方法

被刻印的时光 ゝ 提交于 2019-12-24 15:51:32

最小值和最大值

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

这些算法分别返回[_First,_Last)区间中的最小元素位置、最大元素位置.或最小和最大元素位置所组成的pair

上述没有_Pred实参的各个版本将以operator<进行元素比较

在这里插入图片描述
在这里插入图片描述

_Pred用来比较两个元素,_Pred(elem1,elem2)如果第一元素小于第二元素,应当返回true

如果存在多个最小值或最大值,min_element()和max_element()返回找到的第一个目标元素.minmax_element()返回第一个最小元素和最后一个最大元素.

复杂度:线性

使用例子:

bool absLess(int elem1, int elem2)
{
	return abs(elem1) < abs(elem2);
}
int main()
{
	deque<int>coll;
	INSERT_ELEMENTS(coll, 2, 6);
	INSERT_ELEMENTS(coll, -3, 6);
	PRINT_ELEMENTS(coll);
	cout << "minimum: " << *min_element(coll.cbegin(), coll.cend()) << endl;
	cout << "maximum: " << *max_element(coll.cbegin(), coll.cend()) << endl;
	auto mm = minmax_element(coll.cbegin(), coll.cend());
	cout << "min: " << *(mm.first) << endl;
	cout << "man: " << *(mm.second) << endl;
	cout << "distance: " << distance(mm.first, mm.second) << endl;

	cout << "minimum of absolute values: " << *min_element(coll.cbegin(), coll.cend
	(), absLess) << endl;
	cout << "maximum of absolute values: " << *max_element(coll.cbegin(), coll.cend
	(), absLess) << endl;

}

在这里插入图片描述

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!