成员函数适配器用法
2016-06-07 15:26
302 查看
问题及代码:
/*Copyright (c)2016,烟台大学计算机与控制工程学院
*All rights reserved.
*文件名称:main.cpp
*作 者:崔青青
*完成日期:2016年6月3日
*版 本 号:v1.0
*问题描述:
*输入描述:无
*输出描述:无
*/
#include <iostream>
#include<numeric>
#include<vector>
#include<functional>
#include<iterator>
#include<algorithm>
using namespace std;
struct Car
{
int id;;
Car(int id)
{
this->id=id;
}
void display()const
{
cout<<"car"<<id<<endl;
}
};
int main()
{
vector<Car*>pcars;
vector<Car>cars;
for(int i=0;i<5;i++)
pcars.push_back(new Car(i));
for(int i=5;i<10;i++)
cars.push_back(Car(i));
cout<<"elements in pcars:"<<endl;
for_each(pcars.begin(),pcars.end(),mem_fun(&Car::display));
cout<<endl;
cout<<"elements in cars:"<<endl;
for_each(cars.begin(),cars.end(),mem_fun_ref(&Car::display));
cout<<endl;
for(size_t i=0;i<pcars.size();++i)
delete pcars[i];
return 0;
}
运行结果:
知识点总结:
mem_fun是使成员函数作为函数对象,传入对象指针。mem_fun_ref
使成员函数作为函数对象,传入对象引用。
学习心得:
函数适配器比较难理解,多练习。
/*Copyright (c)2016,烟台大学计算机与控制工程学院
*All rights reserved.
*文件名称:main.cpp
*作 者:崔青青
*完成日期:2016年6月3日
*版 本 号:v1.0
*问题描述:
*输入描述:无
*输出描述:无
*/
#include <iostream>
#include<numeric>
#include<vector>
#include<functional>
#include<iterator>
#include<algorithm>
using namespace std;
struct Car
{
int id;;
Car(int id)
{
this->id=id;
}
void display()const
{
cout<<"car"<<id<<endl;
}
};
int main()
{
vector<Car*>pcars;
vector<Car>cars;
for(int i=0;i<5;i++)
pcars.push_back(new Car(i));
for(int i=5;i<10;i++)
cars.push_back(Car(i));
cout<<"elements in pcars:"<<endl;
for_each(pcars.begin(),pcars.end(),mem_fun(&Car::display));
cout<<endl;
cout<<"elements in cars:"<<endl;
for_each(cars.begin(),cars.end(),mem_fun_ref(&Car::display));
cout<<endl;
for(size_t i=0;i<pcars.size();++i)
delete pcars[i];
return 0;
}
运行结果:
知识点总结:
mem_fun是使成员函数作为函数对象,传入对象指针。mem_fun_ref
使成员函数作为函数对象,传入对象引用。
学习心得:
函数适配器比较难理解,多练习。
相关文章推荐
- 在Android工程中导入外部动态连接库(so文件)
- 跨域
- 2016 CocosPods安装教程
- 学习笔记9
- Commons FileUpLoad 两种上传方式解
- OpenBTS build in TK1
- SAP 建立WebService
- eclipse的异常断点和条件断点
- 深入浅出ECharts系列(一)地图+散点图
- 《深入分析JAVA web技术内幕》 之 CDN和Load balance
- nginx启动
- Failed to import volatility.plugins.malware.apihooks (NameError: name 'distorm3' is not defined)
- 基于特征的图像配准
- 获取手机电池的剩余电量
- Delete Node in a Linked List
- SwipeRefreshLayout+ListView实现下拉刷新自定义上拉加载
- 最小生成树 2016.7.20
- 汉字 字符的区别
- 如何获取手机上所有的音乐文件
- springMVC 的两种文件上传方式