#include<iostream>
using namespace std;
#include"vector"
#include"algorithm"
//
void PrintV(vector <int > &temp)
{
for (vector<int>::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 <int> 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");
}
  •   初始化的赋值的异同
  • 形参和实参赋值的异同

stl中的for_each() 函数的注意事项的更多相关文章

  1. C++STL中的unique函数解析

    一.总述 unique函数属于STL中比较常用函数,它的功能是元素去重.即”删除”序列中所有相邻的重复元素(只保留一个).此处的删除,并不是真的删除,而是指重复元素的位置被不重复的元素给占领了(详细情 ...

  2. STL中的find_if函数

      上一篇文章也讲过,find()函数只能处理简单类型的内容,也就是缺省类型,如果你想用一个自定义类型的数据作为查找依据则会出错!这里将讲述另外一个函数find_if()的用法 这是find()的一个 ...

  3. php中的匿名函数的注意事项

    在php5.3以后,php加入匿名函数的使用,今天在使用匿名的时候出现错误,不能想php函数那样声明和使用,详细看代码 $callback=function(){ return "aa&qu ...

  4. c++中STL中的next_permutation函数基本用法

    对于next_permutation函数是针对于排列组合问题的库函数,它的排序方式是按照字典的方式排列的·: 如以下代码对于next_permutation函数的初步解释: #include<c ...

  5. 为什么map对象不能使用stl中的sort函数

    STL所提供的各式各样算法中,sort()是最复杂最庞大的一个.这个算法接受两个RandomAccestlerators(随机存取迭代器),然后将区间内的所有元素以渐增方式由小到大重新排列.第二个版本 ...

  6. C++STL中的unique函数

    头文件:#include<iostream> 函数原型:iterator unique(iterator it_1,iterator it_2); 作用:元素去重,即”删除”序列中所有相邻 ...

  7. ECMAScript中的箭头函数 (=>) 使用注意事项

    箭头函数表达式的语法比函数表达式更简洁,并且没有自己的this,arguments,super或 new.target.这些函数表达式更适用于那些本来需要匿名函数的地方,并且它们不能用作构造函数. 箭 ...

  8. jquery用Ajax中的回调函数时注意事项

    前端代码 <script language="javascript" type="text/javascript" src="<?php ...

  9. 「STL中的常用函数 容器」

    占个坑,下午在更 二分操作:lower_bound和upper_bound 存图/数列操作:vector容器 全排列:next_permutation和prev_permutation 字符串转数列: ...

随机推荐

  1. [ECharts] - ECharts使用中国地图

    格式1: https://www.cnblogs.com/luna666/p/9007263.html  (非官方) <!DOCTYPE html> <html lang=" ...

  2. Unity3D学习笔记(三十一):Xlua(1)

    Xlua:腾讯研发,开源免费   配置:文件解压,拷贝到Unity项目里 注意:Xlua文件夹不许移动,不许重命名   运行Xlua: 1.引用命名空间 2.创建虚拟机 3.运行lua语句 4.不需要 ...

  3. Shell: nohup守护进程化

    如果想在终端会话中启动shell脚本,然后让脚本一直以后台模式运行,直到其完成,即使你退出了终端会话,可以使用nohup命令实现.感觉nohup就是将一个进程初始化为一个守护进程. nohup命令运行 ...

  4. printf和std::cout ...endl

    printf效率要比std::cout...endl高些,可以减少打印所花时间

  5. HDU 4323 Magic Number(编辑距离DP)

    http://acm.hdu.edu.cn/showproblem.php?pid=4323 题意: 给出n个串和m次询问,每个询问给出一个串和改变次数上限,在不超过这个上限的情况下,n个串中有多少个 ...

  6. Codeforces 729E Subordinates

    题目链接:http://codeforces.com/problemset/problem/729/E 既然每一个人都有一个顶头上司,考虑一个问题: 如果这些人中具有上司数目最多的人有$x$个上司,那 ...

  7. 字符串GZIP压缩解压

    c# /// <summary> /// 字符串压缩解压 /// </summary> public class Zipper { public static string C ...

  8. Eclipse+maven 构建第一个简单的springmvc项目

    先给出项目的目录: 在eclipse下使用maven构建第一个springmvc项目步骤如下: 1.创建maven project(此处默认你已了解maven),此处需要注意以下两点 2.创建完毕后会 ...

  9. 基于python Arcface 实现人脸检测和识别

    虹软的人脸识别技术也是很强的,重要的是他免费提供了离线的sdk,还提供了实例,这个是目前几家研究人脸识别的大公司里面少有的.识别能力正常用还是可以的.我这个代码是调用的离线sdk实现的 ``` fro ...

  10. x1c2017 8G版 win linux的取舍纠结记录

    x1c 2017 的 i5 7200U 8G ram 的丐版.换了1T SSD.其实一般使用没啥问题. 1 外出携带的轻便性太满意(mac13寸相比之下都太重了): 2 coding时候的安静性,比原 ...