C++ 标准库 - <algorithm>

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:最大元素位置。