现在的位置: 首页 > 综合 > 正文

VS2010学习笔记–lambda表达式

2013年12月05日 ⁄ 综合 ⁄ 共 838字 ⁄ 字号 评论关闭

/**
 * <p>Title:
 * 1--for_each()
 * 2--vector <int> V;
 * 3--[](int n){}-----lambda表达式</p>
 * <p>Description:2013年5月18日12:14:26</p>
 * <p>Copyright: Copyright (c) 2013</p>
 * <p>Filename: T1_lambdaException.cpp </p>
 * @author ZTX
 * @version 1.0
 */
#include "stdafx.h"
#include <iostream>
#include <ostream>
#include <algorithm>//提供了大量基于迭代器的非成员模版函数 eg:for_each
#include <vector>//Vector 是一个类模板。不是一种数据类型。 Vector<int>是一种数据类型。
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
	vector <int> V;
	for( int i=0;i<8;i++)
	{
		V.push_back(i);
	}
	for_each( V.begin(),V.end(),[](int n){//V.begin()注意括号,是成员函数,不是成员变量
		//for_each()-----为序列中的每个元素应用指定的函数
		//[](int n){}-----lambda表达式----[] 操作符是 lambda 导引符, 它告诉编译器一个 lambda 表达式开始了。 (int n) 是 lambda 参数声明,它告诉编译器不具名函数对象类的函数调用操作符带有哪些参数, { cout << n << " "; }  是复合声明,它是不具名函数对象类的函数调用操作符的函数体。不具名函数对象类的函数调用操作符默认返回 void。
		cout<<n;	//下面两个条件都需要用它,所以直接放在前面
		if(n%2==0){
			cout<<"\teven\n";
		}else{
			cout<<"\todd\n";
		}
	});
}

【上篇】
【下篇】

抱歉!评论已关闭.