谓词、内建函数对象
谓词
概念:返回值为bool类型的仿函数
补充:仿函数就是对()进行重载的函数
用途:广泛应用于标准算法<algorithm.h>中,可以为标准算法增加筛选条件
分类:
-
一元谓词:仿函数的参数数量为1 -
二元谓词:仿函数的参数数量为2
class Compare2 {
public:
bool operator()(int val, int val2) {
return val > val2;
}
};
void func3() {
vector<int> v;
v.push_back(5);
v.push_back(2);
v.push_back(6);
v.push_back(1);
sort(v.begin(), v.end(), Compare2());
for (vector<int>::iterator it = v.begin(); it != v.end(); it++) {
cout << *it << " ";
}
cout << endl;
}
内建函数对象
概念:STL已经开发好的简单仿函数
头文件:#include <functional>
算数仿函数
除了取反仿函数是一元谓词,其他的都是二元谓词
算术仿函数 | 作用 |
---|
template<class T> T plus<T> | 加法仿函数 | template<class T> T minus<T> | 减法仿函数 | template<class T> T multiplies<T> | 乘法仿函数 | template<class T> T divides<T> | 除法仿函数 | template<class T> T modulus<T> | 取模仿函数 | template<class T> T negate<T> | 取反仿函数 |
关系仿函数
关系仿函数 | 作用 |
---|
template<class T> bool equal_to<T> | 等于 | template<class T> bool not_equal_to<T> | 不等于 | template<class T> bool greater<T> | 大于 | template<class T> bool greater_equal <T> | 大于等于 | template<class T> bool less<T> | 小于 | template<class T> bool less_equal <T> | 小于等于 |
逻辑仿函数
逻辑仿函数 | 作用 |
---|
template<class T> bool logical_and<T> | 与 | template<class T> bool logical_or<T> | 或 | template<class T> bool logical_not<T> | 非 |
|