码迷,mamicode.com
首页 > 编程语言 > 详细

c++学习笔记(七)- lambda表达式 迭代器 算法

时间:2017-12-23 15:57:57      阅读:167      评论:0      收藏:0      [点我收藏+]

标签:仿函数   tps   参数   刷题   question   lam   实现   hive   archive   

关于lambda表达式:

刷题的时候遇到一句代码不懂:

char ch = *it;
auto it2 = find_if(it, b.end(), [ch](char x){ return x != ch; });

find_if :当pred为真时,返回迭代器的值;若所有元素都不满足,返回最后一个元素位置。

技术分享图片

这里的[ch](char x){ return x != ch; }是套用lambda表达式。

lambda表达式  c++中的lambda表达式详解

这里用的是第三种,捕获ch,参数是x,若x!=ch返回1,find_if的pred为真,停止迭代,返回此时的it。

Lambda就是一个匿名函数,适用于要实现某个很简单函数,而且我们只会需要调用它一次的情况”----知乎,路人甲。

 

此外pred还可以用仿函数实现,参考这里以及lambda和仿函数,不知不觉又铺开好大一片,先保存,以后用到的时候再研究了。

 

关于迭代器:

比如for循环的终止条件,要用it!=xx.end(),it<=xx.end()是不行的。

c++学习笔记(七)- lambda表达式 迭代器 算法

标签:仿函数   tps   参数   刷题   question   lam   实现   hive   archive   

原文地址:http://www.cnblogs.com/zhengmeisong/p/8093217.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!