STL 仿函数的实际运用 及示例代码
时间: 2023-05-16 10:06:55 浏览: 81
STL 仿函数是一种可以像函数一样被调用的对象,它可以作为算法的参数,用于对容器中的元素进行排序、查找、筛选等操作。下面是一个示例代码:
```c++
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
// 定义一个仿函数,用于比较两个整数的大小
class Compare {
public:
bool operator()(int a, int b) {
return a > b;
}
};
int main() {
vector<int> nums = {3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5};
// 使用仿函数对容器中的元素进行排序
sort(nums.begin(), nums.end(), Compare());
// 输出排序后的结果
for (int num : nums) {
cout << num << " ";
}
cout << endl;
return 0;
}
```
在上面的示例代码中,我们定义了一个名为 Compare 的仿函数,它重载了 () 运算符,用于比较两个整数的大小。然后我们使用 sort 算法对 nums 容器中的元素进行排序,其中第三个参数是 Compare 对象,表示按照 Compare 的比较规则进行排序。最后输出排序后的结果。
需要注意的是,仿函数可以是类,也可以是函数指针或函数对象,它们都可以被用于 STL 算法中。