重点

简介: 复习方法C++primer 个人经验,C++ primer 第一次可以跳着看。关键是要尽快用起来,在使用中熟练,而不是在细节中迷失。

复习方法

C++primer

 

个人经验,C++ primer 第一次可以跳着看。关键是要尽快用起来,在使用中熟练,而不是在细节中迷失。


以C++ Primer第五版为例,第一遍读的时候:

 

Part1

也就是前七章,除了6.6,6.7节,都要通读。尤其是第三章初步介绍了vector和string,简直就是新手福音,搞定这两个容器就能写一些简单的程序。

 


Part2

基本就是数据结构和算法,如果有基础读起来很轻松。


9,11两章介绍的容器,以及12.1节的智能指针要通读。多用智能指针和容器,远离segment fault.

 

第10章里的泛型算法可以慢慢读,读完以后可以写出高逼格的函数式风格C++。

 

12.2节讲了怎么用new和delete分配空间,题主作为新手,知道这种写法就行,写程序时尽量用容器代替原始数组,尤其是代码里最好不要有delete。
 

 

Part3

是块硬骨头,标题就是Tools for Class Authors. 作为一个"class user",有些部分第一次是可以略过的。


13章很重要,要细读。初始化,复制,赋值,右值引用是C++里很微妙很重要的部分,别的语言对于这些概念很少有区分得这么细的。这一章不但要精读,还要完全掌握。


14章的操作符重载第一次可以观其大略;14.9节第一次可以跳过。


15章讲OOP,重要性不言而喻。如果之前一点概念都没有,学起来会觉得比较抽象。网上关于OOP有很多通俗有趣的文章,可以一起看看。


16章讲泛型编程,第一次读16.1节,掌握最基本的函数模板和类模板就行了

 

 


Part4

更高档了,很多内容第一次就算啃下来,长久不用又忘了。第一次读推荐把18.2节读懂,命名空间简单易用效果好。别的内容可以观其大略,用时再看。

 

17.1节的tuple是个有趣的东东,可以读一读。17.3节的正则表达式和17.4节的随机数也许有用,也可以读一读。如果需要读写文件,要读一下17.5.2节的raw I/O和17.5.3节的random I/O

 

最后给题主的建议是,写C++,要尽量避免C的写法。用static_cast而不是括号转换符;用vector而不是C里面的数组;用string而不是char *;用智能指针而不是原始指针。当然I/O是个例外,printf()还是比cout好用的;转换数字和字符串时sprintf()也比stringstream快

 

 

现代操作系统

线程、进程、中断、系统调用

现代操作系统是一本经典的书。我的体会是,这书需要看许多遍才能有体会。更有可能是,去看了apue, ulk后,才发觉这本书属于旁支暂略,直至核心。

AST擅长讨论的是真正的内核核心-各种算法、方案,更重要的是各种算法、方案的取舍。这是ulk等书不采取的方案,ulk这种书更注重实现细节。

“算法以外的代码占内核的90%以上”是ulk之类书的想法。哪个更好,这很难说,在学习的不同阶段感觉是不一样的,根据学习目的不同感觉也不同。能与现代操作系统比肩的,应该是Operating System Concepts,恐龙书,我没看过,找不到好的电子版,遗憾!想找机会看看。

深入理解计算机系统绝对有看的价值。网络有牛人评价,这本书于等重的黄金等价。讨论了非常多其他书中难得一见的问题,而这些问题又时常出现。绝对要看!

 

深入理解计算机

深入理解计算机系统,分三部分

第一部分的内容与大学课程的计算机组成原理、计算机体系结构、汇编有关。

第二部分讲了链接什么的,只有虚存那一章与操作系统看关系,但实际上也没什么大关系,讲的内容相差很多。

第三部分讲的应用的,与操作系统书更没直接关系了。

 

复习重点:

 

 

 

相关文章
|
SQL 分布式计算 Hadoop
|
7月前
|
前端开发 NoSQL 数据库
项目重点知识点详解
项目重点知识点详解
|
11月前
|
安全 物联网 5G
6G之路:标准尚未制订,核心基础研究却已展开
6G之路:标准尚未制订,核心基础研究却已展开
415 0
6G之路:标准尚未制订,核心基础研究却已展开
|
机器学习/深度学习 人工智能 算法
谈谈从分析到行动看数据驱动和数据信息的区别
近年来,“数据驱动”这个术语已经被广泛使用,很多人谈论要成为一个数据驱动的组织。
谈谈从分析到行动看数据驱动和数据信息的区别
|
数据采集 存储 运维
谈谈企业数据治理的几点思考
根据企业的特点,数据划分为以下三种类型:主数据、交易数据、指标(分析型)数据。
谈谈企业数据治理的几点思考
|
存储 算法 Java
|
测试技术
谈谈我理解的测试的核心价值
测试人员的核心价值      随着公司组织架构的调整,战略调整,产品的实现技术不断变化,现在的测试人员可以说是什么都可以干。       有些人做产品,有些人做平台,有些人做工具......     有些人有点象专职开发,有些人有点象专职运营......      Facebook,google的一些敏捷测试理念中,测试人员应该致力于提出测试解决方案,研究各种测试工具为主,具体的测试执行工作,由coding的开发同学去做。
1276 0
|
Java 关系型数据库 Unix