class="C++" name="code"> * <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表达式----[] caozuofu.html" target="_blank">操作符是 lambda 导引符, 它告诉编译器一个 lambda 表达式开始了。 (int n) 是 lambda 参数声明,它告诉编译器不具名函数对象类的函数调用操作符带有哪些参数, { cout << n << " "; } 是复合声明,它是不具名函数对象类的函数调用操作符的函数体。不具名函数对象类的函数调用操作符默认返回 void。
cout<<n; //下面两个条件都需要用它,所以直接放在前面
if(n%2==0){
cout<<"\teven\n";
}else{
cout<<"\todd\n";
}
});
}
/**