本文章由公号【开发小鸽】发布!欢迎关注!!!
老规矩–妹妹镇楼:
一.内建函数
在STL中内建了一些函数对象(仿函数),这些函数对象可以直接创建并使用。
分为:
算术类函数对象
关系运算类函数对象
逻辑运算类函数对象。
二.调用方法:
引入头文件
#include<functional>
- 像函数一样调用
plus<int> p; //创建内建函数
p(1,1);
- 生成匿名对象
vector<int> v;
sort(v.begin(), v.end(), greater<int>());
三.内建函数模板
(一)算术类函数对象
除了negate,其他都是二元运算
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>//小于等于
(三)逻辑运算类函数对象
not是一元,其余为二元
template<class T> bool logical_and<T>//逻辑与
template<class T> bool logical_or<T>//逻辑或
template<class T> bool logical_not<T>//逻辑非