C++ Primer 5th 阅读笔记:前言
机器效率和编程效率
Its focus, and that of its programming community, has widened from looking mostly at machine efficiency to devoting more attention to programmer efficiency.
C++ 的焦点由早期对机器效率(运行速度、资源占用)的重视延伸到了对编程效率(编程耗时)的关注。
C++11 的目标
- Make the language more uniform and easier to teach and to learn
- Make the standard libraries easier, safer, and more efficient to use
- Make it easier to write efficient abstractions and libraries
- 语法更统一,易学、易教;
- 标准库更简单,更高效,更安全;
- 编写抽象和库更容易。
可以看到 C++11 修订的主要目的是降低 C++ 的使用难度,提高编程效率。
新加入的一些东西
auto:类型推导,增加可读性;smart pointers(智能指针);move-enabled containers(移动容器)。
注意:一些编译器可能不支持某些最新的特性。
现代 C++ 的组成
- 低级语言,继承自 C,对硬件的控制性强;
- 高级特性。自定义类型,开发大型程序;
- 标准库,提供了常用的数据结构和算法。
学习方法
- 不要陷入低级语言的细节中;
- 使用自带的标准库,比如
string和vector,易于理解,使用,不易犯错。比如使用string来替代字符数组; - 使用正确的代码风格;
- 舍弃错误的编程习惯;
章节类型
基础类,必须掌握;

高级类,了解即可;

困难类,需要花充足的时间来掌握,是理解语言的关键。

结构
- 第一部分、第二部分:语言基础和标准库,必须牢牢掌握这部分的知识;通过抽象,来习惯高阶编程。
- 第三部分、第四部分:自定义类,是面对对象编程和泛型编程的基础。第三部分是基础,第四部分是更专业化的高级内容。
术语表
每一章之后都有一个术语表,帮助读者重复已经学过的知识点。
编译器版本
书中的编译器是 GNU GCC,版本是 4.7.0。
| 年份 | 版本号 |
|---|---|
| 1999 | 2.95 |
| 2001 | 3.0 |
| 2002 | 3.1 |
| 2002 | 3.2 |
| 2003 | 3.3 |
| 2004 | 3.4.0 |
| 2005 | 4.0.0 |
| 2006 | 4.1.0 |
| 2007 | 4.2.0 |
| 2008 | 4.3.0 |
| 2009 | 4.4.0 |
| 2010 | 4.5.0 |
| 2011 | 4.6.0 |
| 2012 | 4.7.0 |
| 2013 | 4.8.0 |
| 2014 | 4.9.0 |
| 2015 | 5.1 |
| 2016 | 6.1 |
| 2017 | 7.1 |
| 2018 | 8.1 |
| 2019 | 9.1 |
| 2020 | 10.1 |
随书代码下载链接
http://www.informit.com/title/0321714113
C++ Primer 5th 阅读笔记:前言的更多相关文章
- C++ Primer Plus阅读笔记
cin进行文本输入 使用cin获取字符的基本方式 char ch; cin >> ch; cin读取char值时将忽略空格和换行符.此外,发送给cin的输入被缓冲.这意味着只有在用户按下回 ...
- C-C Primer Plus阅读笔记
常用头: stdio.h string.h inttypes.h limits.h float.h 1.打印short.long.long long和unsigned #include <std ...
- 【读书笔记】C++ primer 5th 从入门到自闭(一)
这几天看了C++ primer 5th的一二章,有很多收获,但是有的地方因为翻译的问题也搞得理解起来颇为难受啊啊啊啊.尤其是const限定符,在C语言并没有这么多复杂的语法,在C++里面语法细节就多的 ...
- C++ Primer 第四版阅读笔记
阅读笔记 初始化 变量定义指定了变量的类型和标识符,也可以为对象提供初始值.定义时指定了初始值的对象被称为是 已初始化的.C++ 支持两种初始化变量的形式:复制初始化和 直接初始化.复制初始化语法用等 ...
- uml大战需求分析阅读笔记01
<<UML大战需求分析>>阅读笔记(1) 刚读了uml大战需求分析的第一二章,读了这些内容之后,令我深有感触.以前学习uml这门课的时候,并没有好好学,那时我认为这门课并没有什 ...
- Hadoop阅读笔记(二)——利用MapReduce求平均数和去重
前言:圣诞节来了,我怎么能虚度光阴呢?!依稀记得,那一年,大家互赠贺卡,短短几行字,字字融化在心里:那一年,大家在水果市场,寻找那些最能代表自己心意的苹果香蕉梨,摸着冰冷的水果外皮,内心早已滚烫.这一 ...
- Hadoop阅读笔记(一)——强大的MapReduce
前言:来园子已经有8个月了,当初入园凭着满腔热血和一脑门子冲动,给自己起了个响亮的旗号“大数据 小世界”,顿时有了种世界都是我的,世界都在我手中的赶脚.可是......时光飞逝,岁月如梭~~~随手一翻 ...
- JavaScript高级程序设计 - 阅读笔记
[本博客为原创:http://www.cnblogs.com/HeavenBin/] 前言: 大致花费了一个星期的时间把这本书认真看了半本,下面是我做的阅读笔记,希望能够让看这本书的人有个大致的参考. ...
- SDL源码阅读笔记(1) 基本模块
write by 九天雁翎(JTianLing) -- blog.csdn.net/vagrxie 前言 对于大牛来说,写关于阅读源码的文章都会叫源码剖析或者深入浅出啥的,对于我,自己阅读阅读源码,写 ...
- DXUT源码阅读笔记
14.GetCapture() 函数功能:该函数取得捕获了鼠标的窗口(如果存在)的句柄.在同一时刻,只有一个窗口能捕获鼠标:此时,该窗口接收鼠标的输入,无论光标是否在其范围内.函数原型:HWND Ge ...
随机推荐
- 在winodws server r2上安装AD域
一.创建第一个域 服务器管理-管理--添加角色和功能 其他都是默认值,下一步 二.重启后,已域账号登录 三.检查AD域有没有安装成功 1.查看计算机名 更改计算机名 2.检查是否含有以下,AD管理中心 ...
- 字符串练习1 于是他错误的点名开始了(Trie)
题目链接在这里:P2580 于是他错误的点名开始了 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 是一道trie树的板子题,注意理解trie树的每一个节点代表的是一个状态,这个状态 ...
- AtCoder-abc230_g GCD Permutation 容斥
J - GCD Permutation 传送门: J - GCD Permutation 知识点:素数筛.容斥定理.gcd 题意:长度为n的一个排列a中,求满足\(gcd(i,j)!=1 且 gcd( ...
- UGUI六大基础组件——Graphic Raycaster
一.组件作用 图形摄像投射器是用于检测UI输入事件的射线发射器.通过射线检测玩家和用户的交互,判断是否点击到了UI元素. 注意:不是通过碰撞器来检测的,而是通过图形来检测的. 二.参数解释 ***** ...
- Caused by: java.lang.ClassNotFoundException: Class org.openx.data.jsonserde.JsonSerDe not found
Caused by: java.lang.ClassNotFoundException: Class org.openx.data.jsonserde.JsonSerDe not found 解决方法 ...
- SpringBoot之独立quartz数据源
背景: 之前项目里面把quartz相关的表跟业务数据库(涉及系统业务的库)融合在一起,后面需要把quartz单独拎出来放在一个数据库里面, 旧的数据源配置(application.properties ...
- IPAD变成电脑的副屏
IPAD变成电脑的副屏方法一:把平板电脑变成显示器:Splashtop Wired XDisplayhttps://www.splashtop.cn/cn/wiredxdisplay方法二:space ...
- SpringBoot笔记--文件配置加载顺序+整合其他框架
内部文件配置加载顺序 外部文件配置加载顺序 jar包配置 整合Junit 若是业务管理类和测试类在同一个包下面,那么这句话, 可以不加括号,只写注解名称 否则,就必须指定到包下面,不然会报错 整合Re ...
- 如何规避MyBatis使用过程中带来的全表更新风险
作者:京东零售 贾玉西 一.前言 程序员A: MyBatis用过吧? 程序员B: 用过 程序员A: 好巧,我也用过,那你遇到过什么风险没?比如全表数据被更新或者删除了. 程序员B: 咔,还没遇到过,这 ...
- Mybatis数据库驱动
Mybatis数据库驱动 最近在学习mybatis的源码,有一个databaseIdProvider根据不同数据库执行不同sql的功能,我正好有一个mysql还有一个瀚高数据库,就去试了一下,使用如下 ...