首页 > 代码库 > 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