首页 > 代码库 > primer Day2

primer Day2

类的静态成员和类直接相关,不是与类的各个对象保持关联。对象共享,静态成员函数不能用const来修饰。没有this指针

static关键字类内部的声明语句中

forward_list定义了一个首前迭代器before_begin()   想法挺好

 

string::npos 是unsigned int 类型的 但是初始值为-1  这里用 typeid(string::npos).name()  可以看到确实是unsigned int类型的。这里的-1补码0xFFFFFFFF 

创建容器适配器的时候,可以将一个命名的顺序容器作为第二个类型参数,来重载默认容器类型 stack<string,vector<string>> str_stk (vec)

 

 

 可以通过stable-sort 稳定排序算法维持相等元素的原有顺序

 

c11 lambda表达式 表示一个可调用的代码单元 [捕获列表](参数列表) -> 返回值类型(函数体)  其中捕获列表和函数体必须要有

         捕获列表 是一个lambda所在函数中定义的局部变量的列表 。

例如:find_if(vec.cbgin(),vec.cend(),[sz](const string& a){return a.size()>sz;})  sz就是一个捕获的一个函数局部变量

lambda可以直接使用定义在当前函数之外的名字和static变量,捕获列表只用于局部非static变量

定义一个lambda时,编译器生成了一个与lambda对应的新的类类型

值捕获是在lambda创建时拷贝,而不是调用时拷贝。

当以引用方式捕获一个变量时,必须保证在lambda执行时变量是存在的

隐式捕获 & =   加上mutable关键字可以修改捕获的值 尾置返回类型 如 []()->tpye{}

 

标准库函数对象

 技术分享

 

primer Day2