应用

foreach语句中

#include <time.h>
#include <algorithm>
using namespace std; void func(int i)
{
cout<<i<<endl;
} int main(int argc, char *argv[])
{
list<int> li;
srand(time(NULL));
for(int i=0;i <10; i++)
{
li.push_back(rand()%100);
}
for_each(li.begin(),li.end(),func);
for_each(li.begin(),li.end(),[](int i){cout<<i<<endl;});
  //!传函数指针的地方可以用lanbda表达式替代。
  return 0;
}

sort()/list::sort()

#include <iostream>
#include <vector>
#include <list>
#include <stdlib.h>
#include <time.h>
#include <algorithm>
#include <functional>
using namespace std;
bool Compare(int i, int j)
{
return i<j;
} int main(int argc, char *argv[])
{
vector<int> vi;
srand(time(NULL));
for(int i=;i <; i++)
{
vi.push_back(rand()%);
}
// sort(vi.begin(),vi.end(),Compare);
sort(vi.begin(),vi.end(),[](int x, int y){ return x<y;}); for_each(vi.begin(),vi.end(),[](int i){cout<<i<<endl;});
return ;

Qt中信号槽机制

#include "mainwindow.h"
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
{
  this->setGeometry(,,,);
  _dial = new QDial(this);
  _dial->setRange(,);
  _dial->setGeometry(,,,);
  _dial->setAutoFillBackground(true);
  _pBar = new QProgressBar(this);
  _pBar->setGeometry(,,,);
  _pBar->setMinimum();
  _pBar->setMaximum();
  _pBar->setOrientation(Qt::Vertical);
  //connect(_dial,SIGNAL(valueChanged(int)),
  _pBar,SLOT(setValue(int)));
  //QObject::connect(const QObject *sender,PointerToMemberFunction signal,Functor functor)
    connect(_dial,&QDial::valueChanged,[&](int v){_pBar->setValue(v);}); 
    //!可以使用lambda表达式替代槽函数
} MainWindow::~MainWindow()
{ }

 lambda表达式与仿函数

#include <iostream>
using namespace std;
class Tax
{
public:
  Tax(float r, float b):_rate(r),_base(b){}
  float operator()(float money)
  {
    return (money-_base)*_rate;
  }
private:
  float _rate;
  float _base;
}; int main(int argc, char *argv[])
{
  // Tax high(0.40,30000);
  // Tax middle(0.25,20000);
  // Tax low(0.12,10000);
  // cout<<"大于 3w 的税:"<<high(37500)<<endl;
  // cout<<"大于 2w 的税:"<<middle(27500)<<endl;
  float rate = 0.40;
  float base = ;
  auto high = [&](float money){return (money-base)*rate;};
  cout<<"大于 3w 的税:"<<high()<<endl;
  return ;
}
 

C++11之lambda表达式应用的更多相关文章

  1. 「C++11」Lambda 表达式

    维基百科上面对于 lambda 的引入是如下描述的: 在标准 C++,特别是当使用 C++ 标准程序库算法函数诸如 sort 和 find.用户经常希望能够在算法函数调用的附近定义一个临时的述部函数( ...

  2. C++11之lambda表达式

    lambda表达式源于函数式编程的概念,它可以就地匿名定义目标函数或函数对象,不需要额外写一个命名函数或者函数对象.lambda表达式的类型在C++11中被称为"闭包类型",也可以 ...

  3. C++11 里lambda表达式的学习

    最近看到很多关于C++11的文档,有些是我不怎么用到,所以就略过去了,但是lambda表达式还是比较常用的,其实最开始学习python的时候就觉得lambda这个比较高级,为什么C++这么弱.果然C+ ...

  4. 【C++11】 lambda表达式

    i.e.int x = 10;int y = 20;int z = [&]{ x = x * x; y = y * y; return x + y;}(); 上面z后面以[]开头的为一个lam ...

  5. C++11之lambda表达式解析

    什么是Lanmbda? 简短函数,就地书写.常用于向函数(算法)传递函数参数. 语法 Lambda 表达式,[capture](paras)mutable->return type{statem ...

  6. c++11:lambda表达式的使用

    lambda表达式的一般形式: [capture list] (parameter list) -> return type{function body}; 其中,capture list (捕 ...

  7. STL - C++ 11的Lambda表达式(上)

    Lambda始自C++ 11,是一种在表达式或语句内指定函数行为的定义式. 你可以定义函数行为作为对象,以inline实参的形式传给算法作为predicate(判断式). eg: std:transf ...

  8. STL - C++ 11的Lambda表达式(下)

    关于lambda的基础知识,请参考上一篇的地址如下: http://www.cnblogs.com/davidgu/p/4825625.html 我们再举个STL使用Lambda来进行排序的例子,如下 ...

  9. C++11 lambda 表达式

    C++11 新增了很多特性,lambda 表达式是其中之一,如果你想了解的 C++11 完整特性,建议去这里,这里,这里,还有这里看看.本文作为 5 月的最后一篇博客,将介绍 C++11 的 lamb ...

随机推荐

  1. 用CMakeLists.txt组织工程

    1 一个工程会有多个CMakeLists.txt,如何组织这些CMakeLists.txt来构建一个工程? 1.1  最外层一个CMakeLists.txt,是总的CMakeList.txt,在这个里 ...

  2. Xshell 连接centOS虚拟机、centOS内置python版本升级

    Xshell 连接虚拟机 前置条件:VMware Workstation 12.5.1.Xshell 5 .  centOS 6.6 1.打开虚拟机,输入用户名和密码: 2.输出命令:ifconfig ...

  3. POJ - 3984 迷宫问题 【BFS】

    题目链接 http://poj.org/problem?id=3984 思路 因为要找最短路 用BFS 而且 每一次 往下一层搜 要记录当前状态 之前走的步的坐标 最后 找到最短路后 输出坐标就可以了 ...

  4. Python运维编程

    Python运维编程 作者:Danbo  2015-10-11 什么是Python,为什么要使用Python? 这个大家自行谷歌,不过看看知乎你就知道Python有多么强大:http://www.zh ...

  5. GDB调试core文件(3)

    列出一些常见问题: 一,如何使用core文件 使用core文件 在core文件所在目录下键入: gdb -c core 它会启动GNU的调试器,来调试core文件,并且会显示生成此core文件的程序名 ...

  6. 在高通平台Android环境下编译内核模块【转】

    本文转载自:http://blog.xeonxu.info/blog/2012/12/04/zai-gao-tong-ping-tai-androidhuan-jing-xia-bian-yi-nei ...

  7. ESP8266串口模块的基本使用【转】

    本文转载自:http://www.shaoguoji.cn/2017/01/15/ESP8266-usage/ ESP8266是一款超低功耗的UART-WiFi 透传模块,拥有业内极富竞争力的封装尺寸 ...

  8. ActiveMQ持久化机制

    用户注册成功后发短信提醒 同步http 异步mq JMS中两种通讯模式: 发布订阅   一对多  topic   去过消费者集群的话 都会消费 消息队列   点对点 queue  去过消费者集群的话 ...

  9. 灰色大气企业html5模板

    灰色大气企业html网页模板是一款以灰色为背景的大气简洁企业html5网站模板. 下载地址:http://www.huiyi8.com/sc/10860.html

  10. BZOJ(begin) 1328 [Usaco2003 Open]Jumping Cows:贪心【波峰波谷模型】

    题目链接:http://begin.lydsy.com/JudgeOnline/problem.php?id=1328 题意: 给你一个长度为n的正整数序列. 可以选任意个数字,只能从左往右选. 偶数 ...