C++ 内建函数对象
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++ 内建函数对象相关推荐
- 内建函数对象(STL)
引言 函数对象是重载函数调用操作符的类,函数对象使用重载的()时,因为类似函数调用,也叫仿函数 所以仿函数(函数对象)就是一个类 我们可以自己建立函数对象,这里就不具体说了:STL中同样给我们提供了一 ...
- c++中STL的常用算法--1(函数对象,谓词,内建函数对象)
函数对象 重载函数调用操作符的类,其对象常称为函数对象(function object),即它们是行为类似函数的对象,也叫仿函数(functor),其实就是重载"()"操作符,使得 ...
- 【C++】【第六篇-2】【黑马 p215~p242】【list容器】【set/multiset容器】【map/multimap容器】【函数对象】【谓词】【内建函数对象】
[C++][第六篇-2][黑马 p215~p242][list容器][set/multiset容器][map/multimap容器][函数对象][谓词][内建函数对象] 3.7 list容器(p215 ...
- c++STL内建函数对象、仿函数——全面总结(附案例解析)(二十二)
这里有C++STL--全面总结详细教程(附案例解析)(持续更新中) 内建函数对象 内建函数对象意义 概念: STL内建了一些函数对象 分类: 算术仿函数 关系仿函数 逻辑仿函数 用法: 这些仿函数所产 ...
- STL算法——内建函数对象
文章目录 1 全部案例链接 2 内建函数对象 6个算数类函数对象,除了negate是一元运算,其他都是二元运算. 6个关系运算类函数对象,每一种都是二元运算. 逻辑运算类运算函数,not为一元运算,其 ...
- C++ 内建函数对象
头文件<functional> 算数类函数对象 关系运算类函数对象 逻辑运算类仿函数
- STL17-函数对象
仿函数: #include<iostream> #include<vector> #include<algorithm> using namespace std; ...
- 【学习篇】【C++】【函数对象】
函数对象的基本使用 函数对象(仿函数) 1.函数对象使用 2.内建函数对象 a) 算术仿函数 b) 关系仿函数 c) 逻辑仿函数 谓词 1.一元谓词 2.二元谓词 函数对象(仿函数) 重载函数调用操作 ...
- 38-【什么叫规矩 什么叫体统】内建函数
/*STL 内建了一些仿函数 内建函数对象 [分类] 1-算数仿函数 2-关系仿函数 3-逻辑仿函数[算数仿函数] template<class T> T plus<T> // ...
最新文章
- ATS中开启Refer防盗链功能
- HDU 2564 词组缩写
- ipython notebook主题背景颜色更改
- 谁在告谁?移动专利混战图
- 方程求解(洛谷P1689题题解,Java语言描述)
- java class 文件分析_大概优秀的java程序员都要会分析class文件吧
- Vue生命周期通俗理解
- Katalon Recorder 自动录制 Selenium 爬虫脚本
- 使用sklearn不同方法在digits手写数字数据集上聚类并用matplotlib呈现
- dirent--文件以及文件夹相关操作(跨平台)
- Python 批量转换视频音频采样率(附代码) | Python工具
- 100多个常用 API 接口整理大全
- Android反编译、签名、重打包、zipalign一条龙
- nbs***bsp;是牛客的bug吗
- Mac中Git如何忽略.DS_Store文件
- BCB6.0 Import Type Library Excel2003时报错:因为我安装了Excel2007兼容包 的缘故
- 06_04_任务二:SSM拉勾教育后台管理系统(广告模块与用户模块)
- java 枚举类组合在一起_Java,.NET,但为什么在一起?
- 卡拉ok歌词html,怎样制作卡拉ok字幕,如何亲手制作专业卡拉ok视频|卡拉ok字幕制作软件...
- 使用foremost对磁盘镜像文件做数字取证
热门文章
- Redis---概述
- Tmux: 打造精致与实用并存的终端
- Java基本数据类型的传值
- 在商城系统开发时遇到商品的多级分类,为增强扩展性,子类可以任意添加,此类问题数据库如何设计...
- javascript事件与event对象的属性
- $ npm install opencv ? 你试试?! 在windows环境下,使用node.js调用opencv攻略
- apple mac 下使用机械键盘的办法,键盘映射工具软件,apple mac Mechanical keyboard
- 2012.1.15---学习笔记
- 轻云服务器的性能,腾讯云轻量应用服务器性能评测(以香港地域为例)
- 卡方线性趋势检验_SPSS:趋势卡方检验