c++ 数据 进制:

数据分 字符型,数值型,bool。

数值型分 整型,浮点型。

数值可翻译为各种进制,10进制,16进制,2进制等,本质上都一样,计算机中的存储方式都是一样的。

 

c++ lambda学习

 是C++ 11 新增特性,简而言之,Lambda 表达式就是用于创建匿名函数。

#include <iostream>

using namespace std;

int main()
{
[]() { cout << "hello, world" << endl; }();
return 0;
}

lambda函数形式:

  [...] (...) ... {...}

[] 内是一个capture,可以在lambda内部访问的"nonstatic外部变量",如果没有要访问的变量,可以为空。static变量是可以直接被访问的。

() 内是参数,和函数参数一样。

... 是mutable, 异常明细, 属性说明符(noexcept等), 或者返回类型。如果其中之一出现,那么必须出现()。

{} 内是函数体,在这里面写明lambda要完成的工作。

[]里面到底是啥....

#include <iostream>

using namespace std;

int main()
{
int xxx = 10;
auto f = [xxx]() { cout << "hello, world " << xxx << endl; };
f();
return 0;
}

将外部变量passing by value给lambda,lambda可以在内部访问xxx,但是不可以修改xxx。

 

#include <iostream>

using namespace std;

int main()
{
int xxx = 10;
auto f = [&xxx]() { cout << "hello, world " << ++xxx << endl; };
cout << xxx << endl;
f();
cout << xxx << endl;
return 0;
}

lambda可以在内部修改xxx,并且会影响到外部变量。

特殊的形式:

    [=] (...) ... {...}    将外部所有变量传递给lambda,但是不能在内部修改 -- passing by value

    [&] (...) ... {...}     将外部所有变量传递给lambda, 可以在内部修改,并且影响外部变量 -- passing by ref..

    [=,&y] (...) ... {...}   将所有变量传递给lambda,y可以在内部修改,其余变量不行

    [y, &] (...) ... {...}   将所有变量传递给lambda,y不可以在内部修改,其余变量可以

参考博文:https://www.cnblogs.com/DevinSuMi/p/6290688.html

 posted on 2018-02-28 16:54  妍血  阅读(105)  评论(0)    收藏  举报