读书笔记之:C++ Primer (第4版)及习题(ch01-ch11) [++++]
读书笔记之:C++ Primer (第4版)及习题(ch01-ch11) [++++]
第2章 数据和基本类型
1. 整型

2. 习题:左值和右值

3. C++关键字/保留字和操作符替代值

4. 声明,定义, 初始化和赋值是不同的概念。
声明是说明一个变量的存在,不会为变量进行内存空间的分配。
定义是说明一个变量的存在,同时为这个变量分配对应的内存空间。
初始化就是在进行变量定义的时候在所分配的内存空间中同时填入有意义的值。如果不进行初始化的话,变量虽然有对应的内存空间,但是内存空间中对应 的内容却是无意义的。
赋值是为已经存在的变量的改写值,也就是重新擦写变量内存空间的数据,填入新的数据。
C++中因为有类的存在所以,对初始化进行了更细的划分,分为直接初始化和复制初始化。
C++对于变量的初始化规定了一些规则:内置类型和类类型是不一样的,内置类型在函数体外自动初始化为0,函数体内不进行初始化。而类类型的话是调用类的默认构造函数。


5. const变量/对象的初始化


6. 引用声明后就必须初始化,并且一经初始化就不能再改变。

不能使用const变量来初始化非const引用。
7. 定义变量和定义类成员变量是不一样的。

第3章 标准库类型
1.string对象的读写

下面的代码可以从输入不断的读入单词。
int main(){
string word;
while(cin>>word)
cout<<word<<endl;
}
上面的程序的大致输出是这样的:
如果从标准输入读入的话,产生的结果是这样的:每次按回车键之后才产生输出。主要cin是从缓冲区读取输入的,只有每次按下回车键的时候才将缓冲区进行刷新。

如果是使用管道来进行输入的话,结果是这样的

可以看到单词是通过空白符(空格,回车,制表符)进行划分的。而结束是根据文件结束符进行判断的。


getline的使用方法如下:
int main(){
string line;
while(getline(cin,line))
cout<<line<<endl;
}

8. bitset类型



第4章 数组和指针
1. 指针与引用

2. 动态数组的初始化

第5章 表达式
1. C++中前置操作符还是后置操作符

2. 动态创建对象时的默认初始化。

3. 删除const对象,使用delete来收回内存

4. C++中的类型转换

第6章 语句
1. 标准库异常

第7章 函数
1. 形参与实参:形参是变量,实参是表达式。

2. const形参
对于C++内置类型,由于采用的是值复制的方式,所以加const与否都是无影响的。

如果形参是引用的形式,采用const和非const的情况就不一样了。
3. const成员函数

4. 构造函数
默认构造函数,构造函数的初始化列表
5. 实参类型的转换
C++支持函数重载,所以就存在函数的匹配问题。在进行函数匹配的过程中,如果没有找到最佳匹配的话,需要进行实参类型的转换来寻找次优的匹配。

6. const参数与重载


7. 习题,枚举类型对象只能用同一枚举类型的另一对象或一个枚举成员进行初始化。

8. const引用形参
下面的函数是错误的
void swap(const int &a,const int &b){
int tmp=a;
a=b;
b=a;
}

const在此处的用法就是防止对传入形参的修改。
下面的函数也是错误的:
void swap(const int *a,const int *b){
int tmp=*a;
*a=*b;
*b=tmp;
}

const的作用就是说明指针指向的地方是只读的,不允许修改。
9.C++中函数指针的不同写法

函数重载存在时,必须对函数指针进行精确的匹配

第8章 标准IO库
1. IO流类的继承关系以及所在的头文件

2. IO对象不可复制或赋值

3. C++中的IO流的最大的特点就是有流的状态,可以通过判断流的状态

4. 文件流对象的使用



第9章 顺序容器
1. 顺序容器中定义的类型

2. swap操作节省删除元素的成本

3. vector容器的自增长

5. string中的substr,append和replace操作

6. string类型的操作操作,这个其实挺重要的,可以借助这个类find操作完成很多工作。







下面是string几个查找函数的例子:


下面的程序不严格的事这个习题的程序,该程序只是找到一个个的单词。
第10章 关联容器
1.STL中的关联容器

在C++11中添加了unordered_map,unordered_set,unordered_multimap,unordered_multiset. 这四个容器其实就是常见的hash_map,hash_set, hash_multimap, hash_multiset
2. pair类型

3. map容器定义的类型

对map迭代器进行解引用得到的是pair类型
4. map下标访问的特殊之处

5. map的insert操作

统计单词数目的一个简单程序:
6. map中的查找操作:count和find函数


7. 一个简单的单词转换程序
运行结果如下:

8. map,set,list差异

9. set的定义与使用

10. 利用set来排除一些常见的单词,这样在统计的时候就避开了常见的单词
11. 容器的综合应用:文本查询程序
以该程序源文件为输入的话,有下面的输出:

12. 常见常用容器总结


第11章 泛型算法
1. 插入迭代器

2. iostream迭代器






3. 使用copy算法将文件写入到输出:

4. 三种迭代器

5. 迭代器分类





读书笔记之:C++ Primer (第4版)及习题(ch01-ch11) [++++]的更多相关文章
- 【Todo】【读书笔记】机器学习实战(Python版)
还是把这本书的读书笔记,单独拎出来吧,因为内容比较多. P38. Logistic 回归. 觉得还蛮实用的.囫囵吞枣看的.要细看.
- 【读书笔记】C++ primer 5th 从入门到自闭(一)
这几天看了C++ primer 5th的一二章,有很多收获,但是有的地方因为翻译的问题也搞得理解起来颇为难受啊啊啊啊.尤其是const限定符,在C语言并没有这么多复杂的语法,在C++里面语法细节就多的 ...
- 【读书笔记】C Primer Plus ch.15位运算 示例程序15.1 整数转换成二进制字符串
正文: https://www.zybuluo.com/RayChen/note/595213
- [读书笔记]Hadoop权威指南 第3版
下面归纳概述了用于设置MapReduce作业输出的压缩格式的配置属性.如果MapReduce驱动使用了Tool接口,则可以通过命令行将这些属性传递给程序,这比通过程序代码来修改压缩属性更加简便. Ma ...
- Primer C++第五版 读书笔记(一)
Primer C++第五版 读书笔记(一) (如有侵权请通知本人,将第一时间删文) 1.1-2.2 章节 关于C++变量初始化: 初始化不是赋值,初始化的含义是创建变量时赋予其一个初始值,而赋值的含义 ...
- 读书笔记之:C++ Primer (第4版)及习题(ch12-ch18) [++++]
读书笔记之:C++ Primer (第4版)及习题(ch12-ch18) [++++] 第12章 类 1. 类的声明与定义:前向声明,不完全类型 2. 从const函数返回*this 3. 可变数据成 ...
- 《3D Math Primer for Graphics and Game Development》读书笔记1
<3D Math Primer for Graphics and Game Development>读书笔记1 本文是<3D Math Primer for Graphics and ...
- 《C++ Primer 4th》读书笔记 序
注:本系列读书笔记是博主写作于两三年前的,所以是基于<C++ Primer>第四版的,目前该书已更新至第五版,第五版是基于C++11标准的,貌似更新挺多的.博主今年应届硕士毕业,如若过阵子 ...
- 读书笔记汇总 - SQL必知必会(第4版)
本系列记录并分享学习SQL的过程,主要内容为SQL的基础概念及练习过程. 书目信息 中文名:<SQL必知必会(第4版)> 英文名:<Sams Teach Yourself SQL i ...
随机推荐
- ajax学习----json,前后端交互,ajax
json <script> var obj = {"name": "xiaopo","age": 18,"gender ...
- 【codeforces 508B】Anton and currency you all know
[题目链接]:http://codeforces.com/contest/508/problem/B [题意] 给你一个奇数; 让你交换一次数字; 使得这个数字变成偶数; 要求偶数要最大; [题解] ...
- Tomcat关闭后,重新启动,session中保存的对象为什么还存在解决方法
Tomcat关闭后,重新启动,session中保存的对象为什么还存在各们朋友大家好: 当我关闭Tomcat,重新启动后,session中保存的对象还依然存在,仍然可以使用,不知这是什么 ...
- CF #324 DIV2 E题
这题很简单,把目标位置排序,把目标位置在当前位置前面的往前交换,每次都是贪心选择第一个满足这样要求的数字. #include <iostream> #include <cstdio& ...
- codeforces 391E2 (【Codeforces Rockethon 2014】E2)
题目:http://codeforces.com/problemset/problem/391/E2 题意:有三棵树.每棵树有ni个结点,加入两条边把这三棵树连接起来,合并成一棵树.使得合并的树 ...
- Smobiler实现列表展示—GridView(开发日志十二)
一.列表功能展示 二.具体步骤 2.1,列表控件设计部分 2.1-① 在窗口SmoiblerForm1中加入gridview控件 2.1-② 在属性栏设置gridview控件的大小和位置 ...
- Ural 1353 Milliard Vasya's Function(DP)
题目地址:Ural 1353 定义dp[i][j].表示当前位数为i位时,各位数和为j的个数. 对于第i位数来说.总能够看成在前i-1位后面加上一个0~9.所以状态转移方程就非常easy出来了: dp ...
- android 细节之 menu 之 invalidateOptionsMenu
menu 在 android中是个很经常使用的控件,曾经自己做项目的时候通常都是将系统的menu相关方法在activity中直接删去.而且将主题换为fullscreen,然后再在layout中引入自己 ...
- 体验决定销量,真假4K争论仅仅是忽悠人而已
随着4K电视越来越多.网上关于真假4K电视的争论也越来越激烈,RGB与RGBW的死掐也进入了白热化阶段.从某种意义上讲.真假4K话题是4K电视市场竞争加剧的必定结果.并且这场争论已经严重影响了 ...
- 一个效果非常华丽的仿桌面APP,却胜似Launcher
开发Android APP的同学是否对于Launcher实现的绚丽效果而痴迷呢?什么.连Android Launcher是什么都不知道.好吧,拿起侬的手机.在解锁后的首页界面上左右滑动滑动,体验体验, ...