博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
stl中的for_each() 函数的注意事项
阅读量:5309 次
发布时间:2019-06-14

本文共 1457 字,大约阅读时间需要 4 分钟。

#include
using namespace std;#include"vector"#include"algorithm"//void PrintV(vector
&temp){ for (vector
::iterator it = temp.begin(); it != temp.end(); it++) { cout << *it << " "; } cout << endl;}void showV(int &n){ cout << n << " ";}class C_showV{public: void operator() (int &n) { cout << n << " "; }protected:private:};class C_showV2{public: C_showV2() { this->num = 0; } void operator() (int &n) { num++; cout << n << " "; } void PrintN() { cout << num << endl; }protected:private: int num;};int main(){ vector
v1; v1.push_back(1); v1.push_back(6); v1.push_back(3); v1.push_back(18); cout << "PrintV(v1) +++++> "; PrintV(v1); cout << endl; cout << "运用回调函数入口实现:for_each(v1.begin(), v1.end(),showV )+++++> "; for_each(v1.begin(), v1.end(),showV ); cout << endl; cout << "运用函数对象入口实现:for_each(v1.begin(), v1.end(),C_showV())+++++> "; for_each(v1.begin(), v1.end(), C_showV()); cout << "\n我是漂亮的分割线,接下来针对于函数对象的几种情况:\n"; C_showV2 tem1 = for_each(v1.begin(), v1.end(), C_showV2()); cout << endl; tem1.PrintN();//4 C_showV2 tem2; C_showV2 tem11 = for_each(v1.begin(), v1.end(), tem2); // 初始化 cout << endl; tem11.PrintN(); //4 tem2.PrintN();// 0 tem2和tem1的值不相同的主要原因是实参和形参,在加上for_each的定义是元素 不是引用。 tem11 = for_each(v1.begin(), v1.end(), tem2);//赋值 cout << endl; tem11.PrintN();//4 system("pause");}
  •   初始化的赋值的异同
  • 形参和实参赋值的异同

转载于:https://www.cnblogs.com/xiaochige/p/6959129.html

你可能感兴趣的文章
Android开发中,有哪些让你觉得相见恨晚的方法、类或接口?
查看>>
asp.net套打
查看>>
用户十秒离开你网站的15大原因
查看>>
通信之中的原理--噪声做加密
查看>>
java多线程编程题之连续打印abc的几种解法
查看>>
SUSE Linux Enterprise 11 安装 MySQL笔记
查看>>
Java程序性能优化
查看>>
经济类图书推荐--转自水木
查看>>
visual studio 安装相关
查看>>
TextView中设置不同颜色字体
查看>>
zoj 1842 Prime Distance
查看>>
Linux 文件属性
查看>>
Oracle基础学习笔记(一)
查看>>
iOS 开发笔记-plist使用
查看>>
BZOJ4013 : [HNOI2015]实验比较
查看>>
界面控件DevExpress发布v18.2.5|附下载
查看>>
【重大更新】DevExpress WinForms v18.2新版亮点(七)
查看>>
Jquery实现让滚动条始终保持在最下方
查看>>
java中三种常见内存溢出错误的处理方法
查看>>
从CPU/OS到虚拟机和云计算
查看>>