STL内建了一些函数对象。分为:算数类函数对象,关系运算类函数对象,逻辑运算类仿函数。这些仿函数所产生的对象,用法和一般函数完全相同,当然我们还可以产生无名的临时对象来履行函数功能。使用内建函数对象,需要引入头文件 functional

#define _CRT_SECURE_NO_WARNINGS
#include<iostream>
using namespace std;
//内建函数对象头文件
#include <functional>
#include <vector>
#include <algorithm>void test01()
{//template<class T> T negate<T>//取反仿函数negate<int>n;cout << n(10) << endl;//加法  template<class T> T plus<T>//加法仿函数plus<int> p;cout << p(1, 1) << endl;
}//template<class T> bool greater<T>//大于void test02()
{vector<int>v;v.push_back(10);v.push_back(30);v.push_back(50);v.push_back(20);v.push_back(40);sort(v.begin(), v.end(), greater<int>());for_each(v.begin(), v.end(), [](int val){ cout << val << " "; });
}int main(){//test01();test02();system("pause");return EXIT_SUCCESS;
}

-------分割线--------
sort 排序,第三个参数可以是函数名,也可以是函数对象

#include <string>
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;bool myparse(int v1, int v2) {return v1 > v2;
}
class MyParse {
public:bool operator() (int v1, int v2) {return v1 > v2;}
};
void test1() {vector<int> v1;v1.push_back(20);v1.push_back(35);v1.push_back(5);for (vector<int>::iterator it = v1.begin(); it != v1.end(); ++it) {cout << *it << endl;}sort(v1.begin(), v1.end());cout << "--" << endl;for (vector<int>::iterator it = v1.begin(); it != v1.end(); ++it) {cout << *it << endl;}/*sort(v1.begin(), v1.end(), myparse); // 通过函数,可以实现自定义排序cout << "--" << endl;for (vector<int>::iterator it = v1.begin(); it != v1.end(); ++it) {cout << *it << endl;}*/sort(v1.begin(), v1.end(), MyParse()); // 通过函数对象, 也可以实现自定义排序cout << "--" << endl;for (vector<int>::iterator it = v1.begin(); it != v1.end(); ++it) {cout << *it << endl;}
}
int main()
{test1();return 0;
}

C++ 内建函数对象相关推荐

  1. 内建函数对象(STL)

    引言 函数对象是重载函数调用操作符的类,函数对象使用重载的()时,因为类似函数调用,也叫仿函数 所以仿函数(函数对象)就是一个类 我们可以自己建立函数对象,这里就不具体说了:STL中同样给我们提供了一 ...

  2. c++中STL的常用算法--1(函数对象,谓词,内建函数对象)

    函数对象 重载函数调用操作符的类,其对象常称为函数对象(function object),即它们是行为类似函数的对象,也叫仿函数(functor),其实就是重载"()"操作符,使得 ...

  3. 【C++】【第六篇-2】【黑马 p215~p242】【list容器】【set/multiset容器】【map/multimap容器】【函数对象】【谓词】【内建函数对象】

    [C++][第六篇-2][黑马 p215~p242][list容器][set/multiset容器][map/multimap容器][函数对象][谓词][内建函数对象] 3.7 list容器(p215 ...

  4. c++STL内建函数对象、仿函数——全面总结(附案例解析)(二十二)

    这里有C++STL--全面总结详细教程(附案例解析)(持续更新中) 内建函数对象 内建函数对象意义 概念: STL内建了一些函数对象 分类: 算术仿函数 关系仿函数 逻辑仿函数 用法: 这些仿函数所产 ...

  5. STL算法——内建函数对象

    文章目录 1 全部案例链接 2 内建函数对象 6个算数类函数对象,除了negate是一元运算,其他都是二元运算. 6个关系运算类函数对象,每一种都是二元运算. 逻辑运算类运算函数,not为一元运算,其 ...

  6. C++ 内建函数对象

    头文件<functional> 算数类函数对象 关系运算类函数对象 逻辑运算类仿函数

  7. STL17-函数对象

    仿函数: #include<iostream> #include<vector> #include<algorithm> using namespace std; ...

  8. 【学习篇】【C++】【函数对象】

    函数对象的基本使用 函数对象(仿函数) 1.函数对象使用 2.内建函数对象 a) 算术仿函数 b) 关系仿函数 c) 逻辑仿函数 谓词 1.一元谓词 2.二元谓词 函数对象(仿函数) 重载函数调用操作 ...

  9. 38-【什么叫规矩 什么叫体统】内建函数

    /*STL 内建了一些仿函数 内建函数对象 [分类] 1-算数仿函数 2-关系仿函数 3-逻辑仿函数[算数仿函数] template<class T> T plus<T> // ...

最新文章

  1. ATS中开启Refer防盗链功能
  2. HDU 2564 词组缩写
  3. ipython notebook主题背景颜色更改
  4. 谁在告谁?移动专利混战图
  5. 方程求解(洛谷P1689题题解,Java语言描述)
  6. java class 文件分析_大概优秀的java程序员都要会分析class文件吧
  7. Vue生命周期通俗理解
  8. Katalon Recorder 自动录制 Selenium 爬虫脚本
  9. 使用sklearn不同方法在digits手写数字数据集上聚类并用matplotlib呈现
  10. dirent--文件以及文件夹相关操作(跨平台)
  11. Python 批量转换视频音频采样率(附代码) | Python工具
  12. 100多个常用 API 接口整理大全
  13. Android反编译、签名、重打包、zipalign一条龙
  14. nbs***bsp;是牛客的bug吗
  15. Mac中Git如何忽略.DS_Store文件
  16. BCB6.0 Import Type Library Excel2003时报错:因为我安装了Excel2007兼容包 的缘故
  17. 06_04_任务二:SSM拉勾教育后台管理系统(广告模块与用户模块)
  18. java 枚举类组合在一起_Java,.NET,但为什么在一起?
  19. 卡拉ok歌词html,怎样制作卡拉ok字幕,如何亲手制作专业卡拉ok视频|卡拉ok字幕制作软件...
  20. 使用foremost对磁盘镜像文件做数字取证

热门文章

  1. Redis---概述
  2. Tmux: 打造精致与实用并存的终端
  3. Java基本数据类型的传值
  4. 在商城系统开发时遇到商品的多级分类,为增强扩展性,子类可以任意添加,此类问题数据库如何设计...
  5. javascript事件与event对象的属性
  6. $ npm install opencv ? 你试试?! 在windows环境下,使用node.js调用opencv攻略
  7. apple mac 下使用机械键盘的办法,键盘映射工具软件,apple mac Mechanical keyboard
  8. 2012.1.15---学习笔记
  9. 轻云服务器的性能,腾讯云轻量应用服务器性能评测(以香港地域为例)
  10. 卡方线性趋势检验_SPSS:趋势卡方检验