C++ Primer Plus学习笔记之STL函数对象
来源:互联网 发布:grpc java 使用 编辑:程序博客网 时间:2024/06/05 02:59
C++ Primer Plus学习笔记之STL函数对象
一,什么是函数对象
很多STL算法都使用函数对象(也叫函数符)。函数符是可以以函数方式与()结合使用的任意对象。
例如:for_each(v.begin(),v.end(),Display)
二,函数符的概念
1,生成器,不用参数就可以调用的函数符
2,一元函数,是用一个参数可以调用的函数符
3,二元函数,是用两个参数可以调用的函数符
三,预定义的函数符
STL定义了多个基本函数符,它们执行诸如将两个值相加,比较两个值是否相等等操作。提供这些函数对象是为了支持将函数作为参数的STL函数,例如sort()函数的第三个参数。
下面列出一些函数符的名称,相信大家会闻名知意的:
plus,minus,multiplies,divides,greater,less...
用法:sort(v.begin(),v.end(),greater<int>())从大到小排序
四,函数适配器
为了将这个概念讲的更简单一点,举一个例子:
multiplies()函数可以执行乘法运算,但它是二元函数,因此需要一个函数适配器,将接受两个参数的函数转换为接受一个参数的函数符,于是STL提供了函数bind1st()和bind2nd()。
例如,要将二元函数multiplies()转换为将参数乘以2.5的一元函数则可以这样做:
bind1st(multiplies<double>(),2.5)
同理bind2nd()方法与其类似只是将常数赋值给第二个参数而不是第一个参数。
0 0
- C++ Primer Plus学习笔记之STL函数对象
- 《C Primer Plus》学习笔记之 函数
- C++ Primer Plus学习笔记之STL迭代器
- C++ Primer Plus学习笔记之STL容器
- C++ Primer Plus学习笔记之STL算法
- C++Primer Plus学习笔记
- 《C Primer Plus》学习笔记
- 《C Primer Plus》学习笔记
- C Primer Plus 学习笔记
- 【学习笔记】C++primer plus 10. 11. 12. 对象
- 《C Primer Plus》学习笔记之 C内存管理
- 【学习笔记】C++primer plus 8.函数探幽
- C++ Primer Plus学习笔记之拷贝构造函数
- C++ Primer Plus学习笔记之虚函数
- C++ Primer Plus 学习笔记之函数探幽----1
- C Primer Plus 学习笔记系列之(一)
- C Primer Plus 学习笔记系列之(三)
- C Primer Plus 学习笔记系列之(二)
- hdu 3338 Kakuro Extension(最大流)
- 打包收尾时要做的事
- linux根目录下各个文件夹的作用
- android绘图
- sadfasdfalksdf
- C++ Primer Plus学习笔记之STL函数对象
- pig的坑
- C++中引用传递与指针传递区别(进一步整理)
- BST 二叉搜索树 非指针版
- cocos2dx用jni调用Android函数
- cocos2d-x新建项目
- McBsp接口使用和概念
- GCJ 2009 Round 2 Problem A. Crazy Rows
- PAT (Advanced) 1055. The World's Richest (25)