函数对象在 stl 中的作用主要包括:1. 容器比较和排序(例如 std::sort、std::find_if);2. 算法自定义(通过自定义谓词或比较函数定制算法行为);3. 容器适配器(扩展容器功能)。此外,函数对象还用于函数器库、面向对象编程和并行编程。
C++ 函数对象在 STL 中的关键作用
函数对象是 C++ 中的特殊对象,可以像函数一样调用。它们在标准模板库 (STL) 中扮演着至关重要的角色,提供了强大的抽象和灵活性。
STL 中使用了函数对象主要有以下几个方面:
1. 容器中的比较和排序
函数对象可以定义为比较函数或排序键,用于对容器中的元素进行比较和排序。例如,以下代码使用 lambda 函数定义比较函数,对 std::vector
中的整数进行排序:
#include <algorithm> #include <vector> int main() { std::vector<int> v = {1, 5, 2, 4, 3}; std::sort(v.begin(), v.end(), [](int a, int b) { return a > b; }); return 0; }