赞
踩
–
// x 是左值,666 为右值
int x = 666; // ok
int *y = x; // ok
int *z = &666 // error
666 = x; // error
int a = 9; // a 为左值
int b = 4; // b 为左值
int c = a + b // c 为左值 , a + b 为右值
a + b = 42; // error
for(变量:对象)
std::vector<int> arr(5, 100);
for (std::vector<int>::iterator i = arr.begin(); i != arr.end(); i ++) {
std::cout << *i << std::endl;
}
// 范围for循环
for (auto &i : arr) {
std::cout << i << std::endl;
}
lambda表达式表示⼀个可调⽤的代码单元,没有命名的内联函数,不需要函数名因为我们直接(⼀次性的)⽤它,不需要其他地⽅调⽤它。
[capture list] (parameter list) -> return type {function body }
// [捕获列表] (参数列表) -> 返回类型 {函数体 }
// 只有 [capture list] 捕获列表和 {function body } 函数体是必选的
auto lam =[]() -> int { cout << "Hello, World!"; return 88; };
auto ret = lam();
cout<<ret<<endl; // 输出88
lambda 表达式的特点:
lambda最⼤的⼀个优势是在使⽤STL中的算法(algorithms)库
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。