C++中STL的内建函数
STL是我们在C++经常用到的标准模板库,里面内建了一些函数对象,用法和普通函数相同。
需要包含头文件==#include <functional.h> ==
一、算数类函数对象
除了negate是一元运算,其他都是二元运算
template<class T> T plus<T> //加法仿函数
template<class T> T minute<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> //小于等于
三、逻辑运算类函数对象
not为一元运算,其余为二元运算
template<class T> bool logical_and<T> //逻辑与
template<class T> bool logical_or<T> //逻辑或
template<class T> bool logical_not<T> //逻辑非
用法举例:
#include <functional.h>
using namespace std;
int main()
{
//使用内建函数声明一个对象
plus<int> myPlus;
cout << myPlus(5, 3) << endl;
cout << plus<int>()(5, 6) << endl; //使用匿名临时函数对象
//sort排序使用预定义函数对象进行排序
vector<int> vec = {1, 3, 5, 6, 2};
sort(vec.begin(), vec.end(), less<int>());
return 0;
}
路漫漫其修远兮,吾将上下而求索