02--读书笔记之:C++ Primer (第4版)及习题
推荐博客:http://www.cnblogs.com/xkfz007/archive/2012/08/15/2639381.html
第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. 迭代器分类
导航
|
|||||||||
日 | 一 | 二 | 三 | 四 | 五 | 六 | |||
---|---|---|---|---|---|---|---|---|---|
29 | 30 | 31 | 1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 | |||
12 | 13 | 14 | 15 | 16 | 17 | 18 | |||
19 | 20 | 21 | 22 | 23 | 24 | 25 | |||
26 | 27 | 28 | 29 | 30 | 31 | 1 | |||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
公告
搜索
随笔分类(313)
- Algorithm(19)
- Algorithm笔记(2)
- C/C++笔记(67)
- C/C++编程(71)
- DataStructure(1)
- DataStructure笔记(11)
- Fedora配置(19)
- FFmpeg(2)
- H.264/JM(30)
- Hardware(1)
- ImageRetrieval(1)
- Interview
- IT技术(1)
- Linux笔记(11)
- Linux编程
- Linux学习(1)
- Matlab技术(3)
- MPEG系列
- Networks
- Opencv学习(1)
- OperatingSys(13)
- Shell笔记(5)
- Shell编程(7)
- Softwares(1)
- UsefulProgs(9)
- VideoCodec(20)
- Windows技术
- X264(4)
- 编程语言(2)
- 多媒体技术(11)
随笔档案(368)
- 2015年6月 (1)
- 2015年5月 (31)
- 2014年5月 (1)
- 2013年7月 (2)
- 2013年6月 (1)
- 2012年11月 (48)
- 2012年10月 (31)
- 2012年8月 (42)
- 2012年7月 (66)
- 2012年6月 (15)
- 2012年5月 (14)
- 2012年4月 (33)
- 2012年3月 (25)
- 2012年2月 (30)
- 2011年12月 (1)
- 2011年11月 (8)
- 2011年10月 (5)
- 2011年9月 (7)
- 2011年8月 (2)
- 2011年7月 (4)
- 2011年4月 (1)
文章分类(175)
- Algorithm(6)
- C/C++编程(40)
- DataStructor(2)
- Fedora配置(11)
- H.264/JM(22)
- Hardware(2)
- IT技术(3)
- Linux编程(9)
- Linux学习(7)
- Matlab技术
- MPEG系列(4)
- Networks(4)
- Opencv学习
- OperatingSys(7)
- Programmer(17)
- Shell编程(7)
- VideoCodec(8)
- Windows技术(3)
- X264(12)
- 编程语言(4)
- 多媒体技术(1)
- 面试(6)
文章档案(174)
- 2013年1月 (1)
- 2012年11月 (9)
- 2012年10月 (8)
- 2012年8月 (17)
- 2012年7月 (46)
- 2012年6月 (13)
- 2012年5月 (17)
- 2012年3月 (9)
- 2012年2月 (24)
- 2011年11月 (1)
- 2011年10月 (6)
- 2011年9月 (7)
- 2011年8月 (8)
- 2011年7月 (6)
- 2011年4月 (2)
相册(5)
最新评论
- 1. Re:视频编解码学习之一:理论基础
- 文章已载到 即时通讯开发者社区:,感谢楼主。
- --jb2011
- 2. Re:视频编解码学习之一:理论基础
- mark
- --梦瑶儿
- 3. Re:转:基于libVLC的视频播放器
- 此外,VLC还支持很多"神奇"的协议,比如输入"screen:"协议就可以进行屏幕录制,代码如下。你好,请问如何把rtsp流的视频录制下来,谢谢!...
- --帅帅颖
- 4. Re:转:C++中临时对象及返回值优化
- 所有的析构都在“calc result:。。”之后,
const Rational& z = x * y;
引用z,貌似延期了匿名的临时变量(有x*y产生)的析构。 - --yk_peng
- 5. Re:转:C++中临时对象及返回值优化
- 没开优化选项
- --yk_peng
- 6. Re:转:C++中临时对象及返回值优化
- --yk_peng
- 7. Re:转:C++中临时对象及返回值优化
- int main(int argc, char **argv) { Rational x(1, 5), y(2, 9); const Rational& z = x * y; cout << "cal......
- --yk_peng
- 8. Re:转:C++中临时对象及返回值优化
- 感觉有些不对
- --yk_peng
- 9. Re:栈增长方向与大端/小端问题
- 其它都是对的了,感谢楼主
- --徐云朋123
- 10. Re:转:十进制小数转化为二进制小数
- 6666
- --LarryLawrence
- 11. Re:转:计算机专业学习浅谈
- 提点不同意见,学理论和习实践,两头都要硬.
知识是宝库,实践是打开宝库的钥匙. - --yamakasiluke
- 12. Re:转:计算机专业学习浅谈
- 说的不错,rtfsc.
- --yamakasiluke
- 13. Re:浮点数在内存中的表示
- 写的啥呀,两个例子都错了..
- --siva~fighting~
- 14. Re:视频编解码学习之一:理论基础
- 多谢,赞一个
- --流水无琴
- 15. Re:CPU与内存的那些事
- 高大上
- --HALDW
Powered by:
博客园
Copyright © Fangzhen
02--读书笔记之:C++ Primer (第4版)及习题的更多相关文章
- 【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 ...
- Key Technologies Primer 读书笔记,翻译 --- Struct 学习 1
原文链接:https://struts.apache.org/primer.html 本来想写成读书笔记的,结果还是变成翻译,谨作记录,学习. 1.HTML -- 见我前面文章 2.Interne ...
- 《3D Math Primer for Graphics and Game Development》读书笔记2
<3D Math Primer for Graphics and Game Development>读书笔记2 上一篇得到了"矩阵等价于变换后的基向量"这一结论. 本篇 ...
- 《3D Math Primer for Graphics and Game Development》读书笔记1
<3D Math Primer for Graphics and Game Development>读书笔记1 本文是<3D Math Primer for Graphics and ...
- 《The Linux Command Line》 读书笔记02 关于命令的命令
<The Linux Command Line> 读书笔记02 关于命令的命令 命令的四种类型 type type—Indicate how a command name is inter ...
- 《C++ Primer 4th》读书笔记 序
注:本系列读书笔记是博主写作于两三年前的,所以是基于<C++ Primer>第四版的,目前该书已更新至第五版,第五版是基于C++11标准的,貌似更新挺多的.博主今年应届硕士毕业,如若过阵子 ...
- 强化学习读书笔记 - 02 - 多臂老O虎O机问题
# 强化学习读书笔记 - 02 - 多臂老O虎O机问题 学习笔记: [Reinforcement Learning: An Introduction, Richard S. Sutton and An ...
随机推荐
- Git学习总结(12)——多人开发 Git 分支管理详解
1.前言 在上一篇博客中我们主要讲解了Git 远程仓库,相信大家对远程的Git仓库有一定的了解,嘿嘿.在这一篇博客中我们来在大家讲解一下Git 分支管理,这可以说是Git的又一大特点.下面我们就来学习 ...
- orcale 基本查询(1)
orcale 基本查询 查询当前用户下的所有表: select * from tab; 查询表结构: desc 表名设置行宽: set linesize 120;设置列宽: 数值类型: col 列名 ...
- Struts 获取表单数据总结
第一种:定义属性值,通过Setters方法获取 /** * 属性驱动:没有实体 * 要求:成员变量必须要有set方法,set后面的名称必须和表单中参数的属性名称一致(首字母大写) * 执行过程:通过成 ...
- navicat 为表添加索引
navicat 为表添加索引 分析常用的查询场景,为字段添加索引,增加查询速度. 可以添加单列索引,可以添加联合索引. 右键,设计表中可以查看和添加修改索引! 索引一定要根据常用的查询场景进行添加! ...
- 【ACM】hdu_2115_I Love This Game_201308021517
I Love This GameTime Limit: 3000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)T ...
- Django(七)
一.ModelForm操作及验证 1.class Meta:class Meta: #注意以下字段不能加逗号 model = models.UserInfo #这里的all代指所用的字段,也可以是一个 ...
- jQuery学习之开篇
吐槽 近期比較烦,对于一个前端白痴来说,工作方向突然转向前端这块着实让人蛋疼无比.前段时间简单的学习了下EasyUI,算是对其有一个简单的认知了吧.EasyUI的研究过程中发现,假设没有掌握JS.JQ ...
- java内存结构(执行时数据区域)
java虚拟机规范规定的java虚拟机内存事实上就是java虚拟机执行时数据区,其架构例如以下: 当中方法区和堆是由全部线程共享的数据区. Java虚拟机栈.本地方法栈和程序计数器是线程隔离的数据区. ...
- poj1426--Find The Multiple(广搜,智商题)
Find The Multiple Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 18527 Accepted: 749 ...
- Scrapy源代码分析-经常使用的爬虫类-CrawlSpider(三)
CrawlSpider classscrapy.contrib.spiders.CrawlSpider 爬取一般站点经常使用的spider.其定义了一些规则(rule)来提供跟进link的方便的机制. ...