stl中的for_each() 函数的注意事项
#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() 函数的注意事项的更多相关文章
- C++STL中的unique函数解析
一.总述 unique函数属于STL中比较常用函数,它的功能是元素去重.即”删除”序列中所有相邻的重复元素(只保留一个).此处的删除,并不是真的删除,而是指重复元素的位置被不重复的元素给占领了(详细情 ...
- STL中的find_if函数
上一篇文章也讲过,find()函数只能处理简单类型的内容,也就是缺省类型,如果你想用一个自定义类型的数据作为查找依据则会出错!这里将讲述另外一个函数find_if()的用法 这是find()的一个 ...
- php中的匿名函数的注意事项
在php5.3以后,php加入匿名函数的使用,今天在使用匿名的时候出现错误,不能想php函数那样声明和使用,详细看代码 $callback=function(){ return "aa&qu ...
- c++中STL中的next_permutation函数基本用法
对于next_permutation函数是针对于排列组合问题的库函数,它的排序方式是按照字典的方式排列的·: 如以下代码对于next_permutation函数的初步解释: #include<c ...
- 为什么map对象不能使用stl中的sort函数
STL所提供的各式各样算法中,sort()是最复杂最庞大的一个.这个算法接受两个RandomAccestlerators(随机存取迭代器),然后将区间内的所有元素以渐增方式由小到大重新排列.第二个版本 ...
- C++STL中的unique函数
头文件:#include<iostream> 函数原型:iterator unique(iterator it_1,iterator it_2); 作用:元素去重,即”删除”序列中所有相邻 ...
- ECMAScript中的箭头函数 (=>) 使用注意事项
箭头函数表达式的语法比函数表达式更简洁,并且没有自己的this,arguments,super或 new.target.这些函数表达式更适用于那些本来需要匿名函数的地方,并且它们不能用作构造函数. 箭 ...
- jquery用Ajax中的回调函数时注意事项
前端代码 <script language="javascript" type="text/javascript" src="<?php ...
- 「STL中的常用函数 容器」
占个坑,下午在更 二分操作:lower_bound和upper_bound 存图/数列操作:vector容器 全排列:next_permutation和prev_permutation 字符串转数列: ...
随机推荐
- Linux邮件服务入门
前言 想定期查询天气并提示我,很容易想到了创建定时任务然后给我自己发邮件,进而学习了linux如何发邮件,下面就开始吧. 开启邮件服务(Ubuntu) 首先执行mail命令看有没有安装,没有的话会提示 ...
- 用原型封装一个操作DOM的例子
<script> // 一句话 在构造函数里面写属性 在原型里面写方法 function Elem(d){ this.even=document.getElementById(d); } ...
- Vue的生命周期(钩子函数)
Vue一共有10个生命周期函数,我们可以利用这些函数在vue的每个阶段都进行操作数据或者改变内容. 其实在Vue的官网有一张图已经很好的诠释了生命周期,我在这里就不再多讲了,直接贴图,然后上程序代码. ...
- Kubernetes简介
Kubernetes is an open-source platform designed to automate deploying, scaling, and operating applica ...
- Global.asax.cs中相关方法
protected void Session_Start(object sender, EventArgs e) { #if DEBUG //debug 登陆默认设置 #endif } protect ...
- Git 提交的正确姿势:Commit message 编写指南
http://www.ruanyifeng.com/blog/2016/01/commit_message_change_log.html Git 每次提交代码,都要写 Commit message( ...
- oracle 新建用户
create user username identified by password; grant dba to username; 授权 或 grant connect, resource to ...
- 在JAVA中返回类型使用泛型T和Object有什么区别?
最近在读jackson源码的时候发现有段代码返回类型写的是<T> T,而我自己一般写的是Object.上网搜了下这个语法糖,在stackoverflow上找到一个比较简单易懂的解释,搬运过 ...
- 能改变this各种情况下的总结,还有没有总结到的,请留言!!
1.. 在函数参数中的,回调函数的this ,指向window 如: promise中的回调函数, 可以在方法外,转存this 2..构造函数中,this指向,实例对象 , 在全局中this是win ...
- MySQL 的 DISTINCT 应用于2列时
SELECT DISTINCT vend_id告诉MySQL只返回不同(唯一)的 vend_id行,也就是在vend_id 有重复的行中,只保留一行,其他的不作输出.比如我创建了如下的student表 ...