![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
c++ primer 学习笔记
文章平均质量分 69
黎果666
内容仅作学习记录
展开
-
第九章 顺序容器
第九章 顺序容器顺序容器概述string 和 vector 将元素保存在连续的内存空间中,随机访问。list 、forward_list 是链表,插入删除操作 O(1) ,顺序访问,额外内存开销也很大。deque 支持快速随机访问,首位删除插入效率高。array 是固定大小的数组,array不支持添加和删除元素以及改变容器大小的操作。forward_ list 的设计目标是达到与最好的手写的单向链表数据结构相当的性能。因此,forward_list 没有 size() 操作。容器库概览原创 2021-09-13 21:34:52 · 95 阅读 · 0 评论 -
第八章 io
第八章 IOio库类型和头文件IO对象无拷贝或赋值不能拷贝,因此不能将形参和返回类型设置为流类型。通常以引用的方式传递和返回流。读写一个IO对象会改变其状态,所以传递和返回的引用不能是const的。ofstream out1, out2;out1 = out2; //错误,不能对流对象赋值ofstream print(out1); //错误,不能初始化ofstream参数out2 = print(out2); //错误,不能拷贝流对象条件状态IO 库定义了原创 2021-09-08 15:20:15 · 129 阅读 · 0 评论 -
c++ primer 学习笔记 第七章 类
第七章 类定义在类内部的是隐式的inline函数。成员函数通过一个名为this的隐式参数来访问调用它的那个对象。//names 类名。total 实例名name total;total.isTrue();//等价于name::isTrue(&toatal);const关键字放在成员函数的参数列表之后,代表this是一个指向常量的指针,所指对象不可被更改。类作用域与成员函数首先编译成员声明,再编译成员函数,因此成员函数可以不用在意类内的成员的声明次序。返回对象的引用。原创 2021-09-03 17:47:26 · 258 阅读 · 0 评论 -
c++ primer 学习笔记 第六章
第六章函数基础函数执行的第一步是隐式的定义并初始化他的形参。如果局部静态变量没有显式的初始值,他将执行值初始化,内置类型的局部静态变量初始化为零。在头文件中进行函数声明,含有函数声明的头文件应该被包含到定义函数的源文件中。使用引用避免拷贝,效率高,而且某些类类型不支持拷贝操作。如果函数无需修改引用形参的值,声明为常量引用。温习----指针引用与constint i = 42;const int *cp = &i; //正确:但是cp不能改变iconst int &r原创 2021-08-26 21:19:30 · 84 阅读 · 0 评论 -
c++ primer 学习笔记 第五章
第五章空语句注意以下情况while(iter != svec.end()) ; //while循环执行的是空语句else 总是与最近的 if配套。switch:某个case匹配成功,则顺序执行后面的case语句,除非遇到显示中断。如果在某处一个带有初值的变量位于作用域之外,在另一处改变量位于作用域之内,则从前一处跳转到后一处的行为是非法的。case true: // 因为程序的执行流程可能绕开下面的初始化语句,所以该switch语句不合法原创 2021-08-25 20:50:36 · 93 阅读 · 0 评论 -
c++ primer 学习笔记 第四章
第四章左值右值当对象被用作左值的时候,用的是对象的身份(在内存中的位置);当一个对象被用作右值的时候,用的是对象的值(内容)。使用关键字decltype时,如果表达式的求值结果是一个左值,decltype作用于该表达式(不是变量)得到一个引用类型。int i = 4;const int j = 5;int arr[5] = { 0 };int *ptr = arr;//表达式的结果为左值,推导为类型的引用decltype((i)) var1 = i; /原创 2021-08-25 20:13:12 · 71 阅读 · 0 评论 -
c++ primer 学习笔记 第三章
c++ primer 学习笔记 第三章stringstring::size_type大致为一个无符号整型数,应避免将string.size()得到的结果与有符号数进行混用。假设n是负值(int),那么s.size() < n 判定结果几乎将会肯定是true, 因为n会被转化为一个很大的无符号整数。字符串字面值与string对象(这两个类型不同)相加时必须确保每个加法运算符两侧的运算对象至少有一个是string,重载+的时候必须有一个是string对象。string s2 = s1 + "原创 2021-08-21 21:29:30 · 78 阅读 · 0 评论 -
c++ primer 第二章
第二章变量定义初始化与赋值初始化不是赋值,初始化的含义是创建变量时赋予一个初始值。赋值的含义是把对象的当前值擦除,以一个新值替代。声明与定义的区别声明:规定了变量的类型和名字。定义:除声明之外,还需要申请存储空间。如果想声明一个变量,而非定义它,需要使用extern关键词。extern int i; // 声明i而非定义iint j; // 声明并定义j变量只能被定义一次,但可以被多次声明。变量命名规范用户自定义类名一般以大写字母开头。原创 2021-08-19 21:46:02 · 118 阅读 · 0 评论