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{}

标准库函数对象

时间: 2024-11-03 03:34:47

primer Day2的相关文章

C++ Primer快速学习 第一章 入门

很多人说C++Primer不适合于入门,本系列入门文章向大家证明了:这是一个谎言. 第一章 入门 本章介绍 C++ 的大部分基本要素:内置类型.库类型.类类型.变量.表 达式.语句和函数. 1.1. 编写简单的 C++ 程序 每个 C++ 程序都包含一个或多个 函数 ,而且必须有一个命名为 main.函数 由执行函数功能的语句序列组成.操作系统通过调用 main 函数来执行程序, main 函数则执行组成自己的语句并返回一个值给操作系统. 下面是一个简单的 main 函数,它不执行任何功能,只是

C++ Primer Plus的若干收获--(八)

接下我会比较系统的介绍OOP的核心--类这个概念.可能会写的比较繁琐,比较多,但是自己理解总是好的.还记得上学期刚开始的时候老师讲的数据结构,一上来就来个LIst的一个大类,结果全班就傻了,完全不知所云(ps:博主是数学系,只学过C),然后自己就坐在图书馆借了两大本C++书开始啃了起来,大概啃了两个月才把C++学了个大概,尤其是读到类这块都是三四百行的常常的代码,看的那叫一个痛苦啊.不过自此之后就真正喜欢上这门语言了,再到之后能用C++写上个一两千行的代码,才发现之前的努力还是有收获的.好了,废

C++ Primer笔记8_动态内存_智能指针

1.动态内存 C++中,动态内存管理是通过一对运算符完成的:new和delete.C语言中通过malloc与free函数来实现先动态内存的分配与释放.C++中new与delete的实现其实会调用malloc与free. new分配: 分配变量空间: int *a = new int; // 不初始化 int *b = new int(10); //初始化为10 string *str = new string(10, ); 分配数组空间: int *arr = new int[10];//分配的

C++ Primer 学习笔记_98_特殊工具与技术 --优化内存分配

特殊工具与技术 --优化内存分配 引言: C++的内存分配是一种类型化操作:new为特定类型分配内存,并在新分配的内存中构造该类型的一个对象.new表达式自动运行合适的构造函数来初始化每个动态分配的类类型对象. new基于每个对象分配内存的事实可能会对某些类强加不可接受的运行时开销,这样的类可能需要使用用户级的类类型对象分配能够更快一些.这样的类使用的通用策略是,预先分配用于创建新对象的内存,需要时在预先分配的内存中构造每个新对象. 另外一些类希望按最小尺寸为自己的数据成员分配需要的内存.例如,

C++ Primer 学习笔记_73_面向对象编程 --再谈文本查询示例

面向对象编程 --再谈文本查询示例 引言: 扩展第10.6节的文本查询应用程序,使我们的系统可以支持更复杂的查询. 为了说明问题,将用下面的简单小说来运行查询: Alice Emma has long flowing red hair. Her Daddy says when the wind blows through her hair, it looks almost alive, like a fiery bird in flight. A beautiful fiery bird, he

C++ Primer 学习笔记_74_面向对象编程 --再谈文本查询示例[续/习题]

面向对象编程 --再谈文本查询示例[续/习题] //P522 习题15.41 //1 in TextQuery.h #ifndef TEXTQUERY_H_INCLUDED #define TEXTQUERY_H_INCLUDED #include <iostream> #include <fstream> #include <sstream> #include <vector> #include <set> #include <map&g

C++primer 15.7.3节练习

练习15.26 写的时候不小心写到了派生类Disc_quote,其实是一样的,主要明白原理即可 1 #include <iostream> 2 #include <string> 3 #include <utility> 4 #include <memory> 5 #include <vector> 6 7 using namespace std; 8 9 class Quote { 10 public: 11 Quote() : bookNo(

雅礼集训——day1、day2

day1: 嗯上午考试拿了100分.第一题40,第二题60.看完题的时候我就觉得第二题的部分分是最好得到的,因为数据范围只有300,而且一眼看上去就是网络流的二分图多重匹配模型?然后就建了个网络流写了些,期望得分是70分,但是第1组数据有点劲,被卡掉了,就拿了60分.正解是map+set的贪心...并不会STL 写完T2去看T1,先用DFS乱搞了一下,结果样例都没过去,我手推了一下样例,得到了一个公式,就是从一个点出发需要加上的边数=这个点通过DFS能够遍历到的点的个数-与这个点直接相连的点的个

python之day2

模块初识   模块分两种:标准库和第三方库 Sys和os模块,标准库 Import sys Sys.path    #print(sys.path) 起名字时不能与导入的库名一样,因为导入的时候首先会到当前目录中找,这样就会导入自己. Python和系统都有一个环境变量,print(sys.path)可以打印出python的环境变量,输出结果如下: ['D:\\python_file\\day2', 'D:\\python_file', 'C:\\Python35\\python35.zip',