C++必读书籍推荐

本文内容来自国外著名编程问答网站Stackoverflow评选的C++推荐书单!推荐大家看原版英文,但这些书大部分也都有中文版!

手册类 – 所有级别

  • C++程序设计语言(The C++ Programming Language) 作者:Bjarne Stroustrup(更新到C++11)C++之父写的经典C++书籍。内容覆盖C++的所有东西,从语言内核到标准库、编程范式和语言哲学(这使得最新版突破1千页)。2013年5月出版的第四版涵盖了C++11的内容。

电子书:第三版(中文)第四版(英文)

  • C++标准程序库(C++ Standard Library Tutorial and Reference) 作者:Nicolai Josuttis (更新到C++11) 这本书是C++标准库(STL)的引导和手册。 2012年4月发行的第二版涵盖了C++11。

电子书:第一版(中文)第一版(英文)第二版(英文)

  • The C++ IO Streams and Locales 作者:Angelika Langer and Klaus Kreft 除了这本书,市面上基本没有讲解streams and locales的书。

电子书:96年版(英文)

C++ 11手册:

  • The C++ Standard (INCITS/ISO/IEC 14882-2011) 作者:C++标准委员会 这当然是C++最权威的标准。要注意的是,C++标准是提供给有足够精力和时间的专家级用户研究用的。国内估计很少有人看,在国外一般它的第一个发行版也非常贵($300+ US),国外有人会买现在价值$30US的电子发行版。

电子书:N3225(英文)

  • Overview of the New C++ (C++11/14) 作者:Scott Meyers(更新到C++11/C++14) 这是Scott Meyers开设的一个为期3天的C++课程的教材。Scott Meyers是C++社区最受尊敬的作者之一。虽然内容比较简短,但质量极高。

电子书:2011年版(英文)

初级

入门

如果你是一个无编程经验的C++初学者,或者有其它语言经验的C++初学者,那强烈推荐下面的书籍。

  • C++ Primer 1 作者:Stanley Lippman, Josée Lajoie, and Barbara E. Moo (更新到C++11) 近1千页,本书透彻的介绍了C++,以浅显和详细的方式讲到C++语言差不多所有内容。2012年8月发行的第五版包含C++11的内容。

电子书:第三版(中文)第四版(中文)第五版(英文版)

  • Accelerated C++ 作者:Andrew Koenig and Barbara Moo 这本书覆盖了和C++ Primer一样的内容,但厚度只有C++ Primer的四分之一。这主要是因为本书面向的不是编程的初学者,而是有其它语言经验的C++初学者。对于初学者,本书学习曲线稍显陡峭,但对于能克服这一点的学习者而言,它确实非常紧凑的介绍了C++这门语言。

电子书:中文版英文版

  • C++编程思想(Thinking in C++) 作者:Bruce Eckel 共两卷,第二卷主要将标准库,但还是不错的。

电子书:第二版V1(英文版)第二版V2(英文版)第二版V1(中文版)第二版V2(中文版)

  • C++程序设计原理与实践 (Programming: Principles and Practice Using C++ )作者:Bjarne Stroustrup C++之父写的C++入门书籍。本书面向没有编程经验的初学者,但相信有编程经验的人也能从本书中学到不少东西。

电子书:中文版

最实用

  • Effective C++ 作者:Scott Meyers 本书以瞄准成为C++程序员必读的第二本书籍而写,Scott Meyers成功了。早期的版本面向从C语言转过来的程序员。第三版修改为面向从类似Jave等语言转来的程序员。内容覆盖了50多个很容易记住的条款,每个条款深入浅出(并且有趣)讲到了你可能没有考虑过的C++规则。

电子书:第二版(英文)第三版(英文)第三版(中文)

  • Effective STL 作者:Scott Meyers 讲解方式和Effective类似,但内容主要面向于STL。

电子书:中文版英文版

中级

  • More Effective C++ 作者:Scott Meyers 更多(深入)关于C++的规则。没有前一本Effective C++重要。但同样值得一读。

电子书:中文版

  • Exceptional C++ 作者:Herb Sutter 讲解方式为提出并解决一系列的C++难题。本书极其透彻的讲解了C++资源管理、异常安全和RAII。同时覆盖了一些较为深入的技术,比如:编译防火墙(pimpl idiom)、名字查找规则,、好的类设计和C++内存模型。

电子书:中文版英文版

  • More Exceptional C++ 作者:Herb Sutter 讲到了Exceptional C++没有涉及到的更高级的异常安全技术, 同时讨论了高效的C++ OOP方式和如何正确的使用STL。

电子书:中文版英文版

  • Exceptional C++ Style 作者:Herb Sutter 讨论了泛型编程、最优化和资源管理。本书出彩之处在于谈到了如何用非成员函数和单职责原则编写模块化的C++代码。

电子书:中文版

  • C++编程规范(C++ Coding Standards) 作者:Herb Sutter and Andrei Alexandrescu “编程规范”这里并不是”代码缩进要用几个空格”。这本书包含了101个例子、惯用法、缺陷,通过这些可以帮助你编写正确、清晰高效的C++代码。

电子书:中文版

  • C++ 模板完全指南(C++ Templates: The Complete Guide)作者:David Vandevoorde and Nicolai M. Josuttis 本书是关于C++11之前的模板的。它覆盖了从非常基础到最高级的元编程知识,解释了模板工作原理的细节(概念和实现方式)。并且讨论了大量的缺陷。附录中包含关于ODR和重载的精彩总结。

电子书:中文版英文版

高级

  • C++设计新思维-泛型编程与设计模式之应用(Modern C++ Design ) 作者:Andrei Alexandrescu泛型编程鼻祖级书籍。本书先介绍了基于策略(policy-based)的设计、type lists 和泛型编程基础, 然后讲到了许多有用的设计模式(包括small object allocators, functors, factories, visitors, and multimethods) 如何被高效、模块化、清晰的泛型代码实现。

电子书:中文版英文版

  • C++模板元编程(C++ Template Metaprogramming)作者:David Abrahams and Aleksey Gurtovoy 更多的是讲解boost::mpl,想要深入理解mpl的可以看一下。

电子书:中文版

  • C++ Concurrency In Action 作者:Anthony Williams 这本书主要内容是C++11的并发支持,包括线程库、原子(atomics)库、内存模型、锁和互斥量。同时也讲解了开发和调试多线程程序的一些难题。

电子书:英文版

  • Advanced C++ Metaprogramming 作者:Davide Di Gennaro 前C++11时代TMP技术的手册级书籍。本书更侧重于工程实践。里面有大量的可能几乎无人知道但很实用的技术写成的代码。本书可能比Alexandrescu的书更值得读。对于资深的开发者来说,这是一个学习C++暗角技术的绝佳机会,通常这些技术要通过资深的编程经历才能获取。

电子书:没找到

经典 / 古老

注意: 下列书中的部分内容可能有些过时

  • C++的设计与演化(The Design and Evolution of C++ )作者:Bjarne Stroustrup 如果你想知道为什么C++是今天这个样子,那么这本书将给你答案。本书覆盖C++标准化之前的一切东西。

电子书:中文版

  • C++沉思录(Ruminations on C++) 作者:Andrew Koenig and Barbara Moo 本书不是为了讲解具体的C++技术细节,而是如何通过C++编写出色的OO代码。

电子书:中文版

  • Advanced C++ Programming Styles and Idioms 作者:James Coplien 讲解了一些C++特有的惯用法. 它确实是一本不错的书籍,如果时间闲暇也可一读。不过它确实很老了,可能有些不符合现代的C++。

电子书:中文版

  • 大规模C++程序设计(Large Scale C++ Software Design) 作者:John Lakos 本书介绍了如何管理大规模C++软件项目的技术。很值得一读,除了有些过时以外。它是在C++98以前写的,缺少了好多对大规模项目重要的特性(比如名字空间)。假如你工作在一个大规模的C++项目中,你可能想要读它, 不过你需要注意那些不适用甚至错误的技术点。

电子书:中文版

  • 深度探索C++对象模型 (Inside the C++ Object Model ) 作者:Stanley Lippman 如果你想知道虚函数是如何实现、多继承时基类是如何在内存中排布的和所有影响性能的东西,那么这本书会给你答案。不过这本书有好多低级的拼写排版错误,英文原版错误更多,侯捷翻译的版本中注明和纠正了很多,但本书绝对值得一读,你将明白编译器如何实现C++的对象模型。

电子书:中文版英文版

 

(转载)Stackoverflow评选的C++推荐书单的更多相关文章

  1. Android 应用开发推荐书单

    本文由 伯乐在线 - zerob13 翻译自 fromdev.欢迎加入Android小组.转载请参见文章末尾处的要求. Android 已经成为了世界上最受欢迎的操作系统之一.成千上万的智能手机和平板 ...

  2. 学校的统一订书80%该烧掉——IT推荐书单

    学校的统一订书80%该烧掉——IT推荐书单 作者: 夏浅音.py 中文图书个人黑名单:清华大学出版社的国产作者,例如一段错n次的谭浩强.一页错n次的严蔚敏... 中文图书个人白名单:机械工业出版社.电 ...

  3. 转载:Django之form表单

    转载: 一.使用form类创建一个表单 先定义好一个RegForm类: forms.py from django import forms # 导入forms类 class NameForm(form ...

  4. 关于VHDL中case语句多执行语句的书写方式(转载stackoverflow.com并做翻译汇总)

    很多国内的教材对于case语句的讲解非常单一,比如: 1 [标号:]CASE 多值表达式 IS 2 WHEN 选择值 => 被赋值变量 <=赋值变量: 3 WHEN 选择值 => 被 ...

  5. 推荐书单(网课)-人生/编程/Python/机器学习-130本

    目录 总计(130本) 一.在读 二.将读 三.已读 非专业书单(77本) 四.已读 专业书单(53本) 五.已看网课(8个) 六.在看网课 一个人如果抱着义务的意识去读书,便不了解读书的艺术.--林 ...

  6. 推荐书单(转自GITHUB)

    Skip to content PersonalOpen sourceBusinessExplore Sign upSign in PricingBlogSupport   This reposito ...

  7. 《黑客反汇编揭秘》(2e)推荐书单

    Must-Read Books and Other References Books on C/C++: The C Programming Language by Brian W. Kernigha ...

  8. iOS 转载一篇利用dispatch_once创建单例的文章

    感谢文章原作者,http://bj007.blog.51cto.com/1701577/649413

  9. 跨应用程序域(AppDomain)的单例(Singleton)实现

    转载自: 跨应用程序域(AppDomain)的单例(Singleton)实现 - CorePlex代码库 - CorePlex官方网站,Visual Studio插件,代码大全,代码仓库,代码整理,分 ...

随机推荐

  1. windows下python连接oracle数据库

    1.首先安装cx_Oracle包2.解压instantclient-basic-windows.x64-11.2.0.4.0.zip到c:\oracle3.拷贝instantclient_11_2下所 ...

  2. 从Java虚拟机的内存区域、垃圾收集器及内存分配原则谈Java的内存回收机制

    一.引言: 在Java中我们只需要轻轻地new一下,就可以为实例化一个类,并分配对应的内存空间,而后似乎我们也可以不用去管它,Java自带垃圾回收器,到了对象死亡的时候垃圾回收器就会将死亡对象的内存回 ...

  3. 框架基础:ajax设计方案(五)--- 集成promise规范,更优雅的书写代码

    距离上一篇博客书写,又过去了大概几个月了,这段时间暂时离开了这个行业,让大脑休息一下.一个人旅行,一个人休息,正好也去完成一个目标 --- 拥有自己的驾照.当然,也把自己晒的黑漆马虎的.不过这一段时间 ...

  4. Charles抓包工具安装与配置

    在实际开发中,我们需要时常抓取线上的请求及数据,甚至是请求的html文档,js,css等静态文件来进行调试.在这里,我使用charles来进行以上操作.但是呢,charles需要进行一系列配置才能达到 ...

  5. golang的并发不等于并行

    先 看下面一道面试题: func main() { runtime.GOMAXPROCS(1) wg := sync.WaitGroup{} wg.Add(20) for i := 0; i < ...

  6. maven配置本地仓库(从本地仓库下载jar包到.m2仓库)

     Windows-->preference               把你的settings.xml存到一个地方maven指向你的settings.xmlsettings.xml里的地址是你们 ...

  7. 关于标签中常用的disabled

    .children("option[disabled]").removeAttr('disabled');

  8. 8位基本定时器(TIM4)

    简介:该定时器由一个带可编程预分频器的8位自动重载的向上计数器所组成,它可以用来作为时基发生器,具有溢出中断功能. 主要功能: (1)8位向上计数的自动重载计数器: (2)3位可编程的预分配器(可在运 ...

  9. nyoj_118:修路方案(次小生成树)

    题目链接 题意,判断次小生成树与最小生成树的权值和是否相等. 豆丁文档-- A-star和第k短路和次小生成树和Yen和MPS寻路算法 法一: 先求一次最小生成树,将这棵树上的边加入一个向量中,再判断 ...

  10. Java条件查询涉及到时分秒

    关于Oralce数据库 的日期时间查询: 下面我们先来看一组日期数据 表:myDate 列:time; 1998-8-7 23:45:33.3 1998-8-7 11:22:21.5 1998-8-7 ...