C++ 预定义函数对象以及函数适配器(一)
2018-03-29 16:16
627 查看
#include<iostream> using namespace std; #include"functional" //预定义函数对象的函数实现都写在这个库文件当中 #include"string" #include<vector> #include<list> #include<algorithm> #include"set" /*总结*/ //1----->预定义函数对象基本概念:标准模板库STL提前定义了很多预定义函数对象,#include <functional> 必须包含。 //有关于plus<>预定义函数对象的正确使用 并且实现了算法与数据类型的分离 ----> 通过函数对象实现 void main21() { //关于参数个数,只需要追踪源码即可 plus<int> intAdd; int a = 10; int b = 21; int c = intAdd(a, b); cout << "C =" <<c<< endl; plus<string> stringAdd; string d = "hello"; string e = "CJLU"; string f = stringAdd(d, e); cout << "f =" << f<<endl; } //有关sort中greater的使用 void main22() { vector<string> m_vec; m_vec.push_back("ghello"); m_vec.push_back("dhello"); m_vec.push_back("khello"); m_vec.push_back("lhello"); m_vec.push_back("lhello"); m_vec.push_back("lhello"); for (vector<string>::iterator it = m_vec.begin(); it != m_vec.end(); it++) { cout << *it << " "; } cout << endl; sort(m_vec.begin(), m_vec.end(), greater<string>()); for (vector<string>::iterator it = m_vec.begin(); it != m_vec.end(); it++) { cout << *it << " "; } cout << endl; //equal_to<string>() 有两个参数,左参数来自于容器 右参数来自于sc //函数适配器:将预定义函数对象与第二个参数进行绑定 bind2nd string sc = "lhello"; //count_if 用来遍历容器并且返回某个元素出现的位置 int num = count_if(m_vec.begin(), m_vec.end(), bind2nd(equal_to<string>(), sc)); cout << "lhello 出现过" << num << "次"; } int main() { //main21(); //有关于plus<>预定义函数对象的正确使用 main22(); //有关sort中greater的使用 system("pause"); return 0; }
相关文章推荐
- C++ 预定义函数对象和函数适配器的使用(二)
- c++中类定义中,对象,引用,指针等针对函数的选择顺序
- 简单讲解C++的内部和外部函数以及宏的定义
- 定义圆类Circle,数据成员有半径radius,成员函数有默认构造函数(默认半径为10)、构造函数、计算圆面积、圆周长以及输出函数,分别构造默认对象和半径为15的对象,输出各对象的周长与面积。
- C++ Pirmer : 第十四章 : 重载运算符与类型转换之函数调用运算符与标准库的定义的函数对象
- C++ 类的继承,子类以及之类的对象 对父类成员函数的访问权限
- [C++学习笔记14]动态创建对象(定义静态方法实现在map查找具体类名对应的创建函数,并返回函数指针,map真是一个万能类)good
- C++ STL(29):Function Object Adapter(函数对象适配器)
- C++父类子类间函数重定义,虚函数重写(覆盖)以及重载
- C++适配器功能实现及函数对象
- 关于JavaScript中函数的定义、对象以及对象实例化的理解
- 预定义函数对象和函数适配器案例
- Oracle数据库创建实体对象,在自命名包中定义函数以及返回实体对象数据
- C++ 之使用标准库函数对象和函数适配器
- QML 访问C++中的 对象,以及函数
- 深入理解C++对象模型-成员函数的本质以及虚函数的实现(非虚继承)
- C++语法基础--函数对象,函数对象的函数适配器(绑定器,求反器)
- QML 访问C++中的 对象,以及函数
- find(),find_if(),以及巧妙的函数对象,函数适配器
- C++ STL/ (12) 函数对象适配器