C++图书指南及列表

这个问题's的答案是社区的努力。编辑现有答案以改进此帖子。它目前不接受新的答案或互动。

这个问题试图收集每年出版的几十本不良的C++书籍中的几颗珍珠。
P>与许多其他编程语言不同,这些程序语言经常在互联网上找到教程,很少有人能快速学习C++而不需要学习一本写得好的C++书籍。这样做太大太复杂了。事实上,它是如此的庞大和复杂,以至于 > >强>有很多非常糟糕的C++书籍 。我们谈论的不是糟糕的风格,而是一些明显的事实错误,以及推广糟糕的编程风格

>请编辑已接受的答案,以提供质量> 和近似的技能级别- > <>e> >讨论C++聊天室中的添加。(如果常客们不同意你的推荐,他们可能会毫不留情地撤销你的作品。)为你个人阅读/受益的每本书添加一个简短的简介/描述。请随意讨论质量、标题等。符合标准的书籍将被添加到列表中。由C和C++用户协会(ACCU)进行评论的书籍与评论有链接。
>子注释:FC++和FAQ中的FAQ和其他资源可以在C++ + FAQ中找到。sub>

初学者

介绍性,没有以前的编程经验

    页面中的EM>C++底漆*(Stanley Lippman,Jeasee LaJoey,Barbara E. Moo)(更新为C++ 11 ),这是对C++语言的非常透彻的介绍,它以非常容易访问的格式和非常详细的方式覆盖了语言中的所有事物。第五版(2012年8月16日发布)涵盖了C++11。[回顾]

    *不要与C++Primer Plus混为一谈(Stephen Prata),它的评价要差得多。

    E>编程:用C++ 的原理和实践(Bjarne Stroustrup,第二版- 2014年5月25日)( 11/C++ 14 >)用语言的创造者介绍C++编程。这是一本很好的读物,假设没有以前的编程经验,但不仅仅是初学者

介绍性,有编程经验

    > C++(Bjarne Stroustrup)(第二版C++ C++ 17版>强>)“旅游”是一个快速(约180页和14章)教程概述,所有标准C++(语言和标准库,和使用C++ 11 )对于已经知道C++或至少是有经验的程序员的人来说,在中等水平上。这本书是一个扩展的版本,构成C++编程语言第2-5章的第四版。
  • 加速C++(Andrew Koenig和Barbara Moo,第一版-2000年8月24日)这基本上涵盖了与C++初级读本相同的领域,但占用了四分之一的空间。这在很大程度上是因为它并不试图介绍编程,而是介绍C++,供以前使用其他语言编程的人使用。它有一个更陡峭的学习曲线,但是,对于那些能够应付这种情况的人来说,它是一个非常紧凑的语言入门。(历史上,它是第一个初学者使用现代语言教学的书,它开辟了新的天地。)尽管如此,C++
    它教的是纯C++98。[回顾]

最佳做法

    有效C++ C++/EM >(Scott Meyers,第三版- 2005年5月22日),这是以C++程序员应该读的最好的第二本书为目标的,它成功了。早期版本的目标是来自C语言的程序员,第三版改变了这一点,目标是来自Java等语言的程序员。它以一种非常容易理解(且令人愉快)的方式展示了约50条易于记忆的经验法则及其基本原理。对于C++ 11和C++ 14,实例和一些问题已经过时,现代C++应该是首选的。[回顾]

    C++ C++有效的C++(Scott Meyers),这是基本上是新版本的有效的C++/EM>,针对C++程序员从C++ 03到C++ 11和C++ 14的转换。

  • 有效的STL(Scott Meyers)这旨在对来自STL的标准库的一部分执行与有效的C++对整个语言所做的相同的操作:它提供了经验法则及其基本原理。[回顾]


中间的

  • 更有效的C++(Scott Meyers)甚至比有效的C++更多的经验法则。虽然没有第一本书中的重要,但还是很好的了解

  • > Excel C++ +E/>(Habor萨特)作为一组谜题,这是对C++中资源管理和异常安全的最好和彻底的讨论之一,除了深入研究PIPML成语、名称查找等各种其他主题之外,还通过资源获取初始化(RAII),很好的类设计,以及C++内存模型。[回顾]

    除了C++中有效的面向对象编程和正确使用STL之外,Excel中的C+++(Habor萨特)还涵盖了在EM> Excel C++ +E/EM中没有涉及的额外的异常安全主题。[回顾]

    > Excel C++风格(Habor萨特)讨论泛型编程、优化和资源管理;这本书还对如何使用非成员函数和单一责任原则编写C++中的模块化代码有很好的阐述。[回顾]

    > > C++ C++编码标准(萨特和Andrei Alexandrescu)“编码标准”并不意味着“我应该缩进多少空间”,这本书包含了101个最佳实践、习语和常见的陷阱,这些帮助可以帮助你写出正确、易懂、高效的C++代码。[回顾]

  • C++模板:完整指南(David Vandevoorde和Nicolai M.Josuttis)这是一本关于C++11之前存在的模板的书。它涵盖了从最基本的到一些最高级的模板元编程的所有内容,并解释了模板如何工作的每一个细节(从概念上以及如何实现),并讨论了许多常见的陷阱。在附录中对一个定义规则(ODR)和过载解决方案进行了出色的总结。涵盖C++11、C++14和C++17的第二版已经出版。[回顾]

  • C++17-完整指南(Nicolai M.Josuttis)本书介绍了C++17标准中引入的所有新功能,涵盖了从“内联变量”、“constexpr if”到“多态内存资源”以及“使用过度对齐的数据新建和删除”等简单功能。[回顾]

  • C++正在运行(Bartosz Milewski)。这本书解释了C++及其特点,通过建立一个应用程序从地面。[回顾]

  • C++中的函数式编程(IvanČukić)。本书介绍了现代C++的功能编程技术(C++ 11和以后)。对于那些想要将函数编程范例应用到C++的人来说,这是一个非常好的阅读。


先进的

    >现代C++设计(Andrei Alexandrescu)是一本关于高级泛型编程技术的突破性著作。介绍基于策略的设计、类型列表和基本的泛型编程习惯用法,然后解释如何使用泛型编程高效、模块化和干净地实现许多有用的设计模式(包括小对象分配器、函数、工厂、访问者和多方法)。[回顾]

  • C++模板元编程(David Abrahams和Aleksey Gurtovoy)

  • >C++在动作(Anthony Williams)中涉及C++ 11并发支持的一本书,包括线程库、原子库、C++内存模型、锁和互斥,以及多线程应用程序的设计和调试问题。涵盖C++14和C++17的第二版已经出版。[回顾]

    《高级C++编程语言》(E/EM)(大卫·迪·詹纳罗)是TMP技术的前C+11手册,重点是实践而不是理论。这本书中有大量的片段,其中一些片段因类型特征而过时,但了解这些技巧仍然很有用。如果你能忍受奇怪的格式/编辑,它比Alexandrescu更容易阅读,而且可以说更值得一读。对于经验丰富的开发人员来说,有一个很好的机会,你可能会发现一些关于C++黑暗角落的事情(一种怪癖),通常只通过大量的经验来实现。

    > E+大容量C++ I、过程和体系结构(John Lakos)。三部分系列的第一部分扩展了老的书“大规模C++设计”。
    LakOS解释了测试过的技术来管理非常大的C++软件项目。如果你在一个大型C++软件项目中工作,这是一个伟大的阅读,

发表评论