C++ std::min_element 返回区间中最小元素的迭代器;空区间返回 last。可选比较器改变“更小”的含义。
原型
template<class ForwardIt>
ForwardIt min_element(ForwardIt first, ForwardIt last);参数
first,last:搜索区间。- 可选比较器重载与
sort类似。
返回值
指向最小元素的迭代器;有多个最小值时指向最先出现的那个。空区间为 last。
示例
#include <algorithm>
#include <iostream>
#include <vector>
int main() {
std::vector<int> v = {4, 1, 3, 1};
auto it = std::min_element(v.begin(), v.end());
if (it != v.end()) {
std::cout << *it << " index=" << (it - v.begin()) << std::endl;
}
return 0;
}输出:
1 index=1
注意事项
需要同时得到最小与最大时,可用一次 minmax_element,避免扫两遍。自定义类型须提供 operator< 或传入比较器。
下一页介绍max_element:最大元素位置。