算起来,用C++已经有七八年时间,也有点可以分享的东西;
以下推荐的书籍大多有电子版。对于技术类书籍,电子版并不会带来一个好的阅读体验。如果喜欢,最好找纸版(图书馆是个好去处);电子版更适合作为一个参考书籍常备电脑。
 
我将分为基础篇、Windows篇、和Linux/Unix篇 三个部分来介绍这些经典书籍:
 

C++入门

C++ Primer

我的C++入门读物是《C++大学教程》,这本书800多页,由于学习时间长,一个学期学这么一本书,时间上的富裕,让我有充分的时间来吸收。书中80%的代码我都敲到PC上运行过;后来再看《C++ primer》的时候,也就一个星期的功夫翻完了。都是入门读物,介绍的也都全面。刚接触C++的朋友,至少应该将这方面的书好好过一遍。
 

语言技巧,性能优化

有了语言基础之后,接着就是细节上的深入,进一步领会C++的精髓。《Effective C++》可以看作是一本C++ 疑难解惑手册; 对于C++语言层次深入一点的东西,容易出错的知识点,在这边书上可找到满意解答;适合多次品味。
C++必知必会》《More Effective C++》则作为对Effective C++ 没有讲完的补充,可看作前者看完后意犹未尽时使用;
顺便说下,这三本书都不厚,小册子,每本也就几天的功夫就可以搞定;
 

底层硬货

C++源于C,对于指针、对于各种地址的偏移计算,对于大端小端的深刻剖析,还得靠一些硬通货来解析;这两本书虽说不厚,但读起来确实费劲,信息量很足,很多都是在平时C++使用中没有意识到的知识点,却又都是重要的点。让人有知其所以然的快感;
涉及到底层的东西,都是用来验证编程功底是否扎实。要想彻底掌握C++底层的东西,还是得看看专家编程,很好的两本书,指针等讲的很透彻。
 

STL

C++标准程序库》是属于百科全书类型,讲解基础,但语言平淡(是以参考手册的角度来写的),没有勇气将其全部翻完,捡感兴趣的和自己很缺乏的部分看了看(里面关于智能指针方面的论述,还不错);
泛型编程与STL》里面对萃取机制及各泛型的概念论述非常透彻,前6章为主要篇章,不可跳过。后面的可在实践中编码练习或查找。 后面章节可在看完之后做为手册使用,对STL中的常用算法和容器进行了归类讲解,并给出了相当数量的示例。
STL源码剖析》每一个推荐深入STL的文章应该都少不了这本书。下面几个问题可以考查一下是否需要看看: 1.STL中DQueue的实现机制(数据结构式如何组织的,其迭代器的插入和删除过程中的实现) 2.是否熟悉红黑树,能否叙述其插入和删除过程,如何调整。 3.萃取器的几种实现
 

Boost

当标准库无法再满足你的时候,就轮到Boost出场了。编程,讲究两个效率,一是开发效率,二是运行效率。与其它编译型语言相比(java、C#等),C++属于后者,运行效率不错,但开发效率着实低。除了C++更底层的原因外,另一方面的原因就是标准库提供的功能不足。没有太多的工具,想实现什么都得自己来一遍,重复的造轮子的工作在程序员中不断上演;
Boost库是对C++标准库的扩展,让我们在开发的过程中有更多的工具可以选择。正则表达式、智能指针等工具都是非常有用的工具,而函数对象,Lambda则让我们在编写C++的代码中更为优雅;
这里提供的一本书是Boost的入门经典。它的目的就是让你对boost产生兴趣。等有了兴趣之后,就直接上boost的官网吧,需要什么尽管拿。
 

设计模式

设计模式》是该领域的圣经,未全看完。虽说经典,但一页一页的翻完,还真要点耐性。不像老外写书的风格,这本书看的很累(这也是一本参考手册)。我认为在对大部分模式都有一定的了解后再来看这本书,会找到很多兴趣点。
设计模式精解》我的设计模式之路是从这本书入门的,通过几个实例来解释模式的用法,以及为什么要用模式(这个可能更重要),不过全书也就讲了10来个模式,意犹未尽。对设计模式感兴趣、初学者推荐;
道法自然》是国人写的很不错的一本书,用他们自己写的一个框架系统作为实例,贯穿全文,讲解各种模式的用法。看过后,体会到模式在大项目,特别是这种框架系统中的应用真是太到位了。同时,熟悉MFC的朋友会在本书中收获更多的东西,MFC也是一个框架系统,通过本书的讲解,可以体会到MFC的内部设计以及为何如此设计(书中就专门讲到MFC中的设计思想),同时,在讲单件模式的时候,还带出了MFC中theApp的作用(为什么要在MFC中安排一个theApp全局变量?这是我看到的唯一一本书解释了这个问题的);
 

算法篇

讲解数据结构和算法技巧的压轴好书。
 
基础篇就谈这些,后续将讨论C++的应用,Windows篇和Linux/Unix篇;
 
(原文地址:http://www.cnblogs.com/me115/archive/2012/12/26/2833346.html)

[转]C++学习–基础篇(书籍推荐及分享)的更多相关文章

  1. Docker虚拟化实战学习——基础篇(转)

    Docker虚拟化实战学习——基础篇 2018年05月26日 02:17:24 北纬34度停留 阅读数:773更多 个人分类: Docker   Docker虚拟化实战和企业案例演练 深入剖析虚拟化技 ...

  2. 深度学习Tensorflow相关书籍推荐和PDF下载

    深度学习Tensorflow相关书籍推荐和PDF下载 baihualinxin关注 32018.03.28 10:46:16字数 481阅读 22,673 1.机器学习入门经典<统计学习方法&g ...

  3. web前端学习路线与书籍推荐

    什么是web前端? 在以前,通俗的讲是网页制作,在现在,哼哼,可以参考这篇文章 http://tieba.baidu.com/p/4817153404 那么如果高效优雅的学习web呢? 注:以下纯属个 ...

  4. Android学习之路书籍推荐

    Android开发书籍推荐:从入门到精通系列学习路线书籍介绍 JAVA入门书籍: < Introduction to java programming > < Core java & ...

  5. 学习windows内核书籍推荐 ----------转自http://tieshow.iteye.com/blog/1565926

      虽然,多年java,正在java,看样子还得继续java.(IT小城,还是整java随意点)应用程序 运行于操作系统之上,  晓操作系统,方更晓应用程序. 主看windows,因为可玩性高,闭源才 ...

  6. 学习UI设计书籍推荐

    在学习UI设计的过程当中,特别想学或者零基础的人来说,需要学习到很多知识,比如软件 PS AI ,理论 色彩 排版 规范 UE 等,这些都是一名UI设计师需要学习的知识,而学习到这些知识,可以通过视频 ...

  7. python学习之路-书籍推荐

    学python有一段时间了,总结走来的路,发现还是看书靠谱,当然也要多实践. 一.入门篇 1.简明 Python 教程(A Byte of python) http://www.kuqin.com/a ...

  8. Python ( 学习 基础篇第一部 )

    目录 注释 注释的分类 注释的注意点 变量 变量的概念 变量的声明 变量的命名 变量的交换 变量的缓存机制 常量 进制 进制的转换 原码 反码 补码 六大数据类型 Number 的四大类 字符串 st ...

  9. ios学习基础篇一

    搜集的不错的oc学习资料 大概总结: http://my.oschina.net/luoguankun/blog/208526 详细教程: http://www.w3cschool.cc/ios/io ...

随机推荐

  1. 调研一类软件的发展演变—聊天软件( 1000-2000 words, in Chinese)

    因为本人平时对聊天软件的涉及比周边其他同学而言所涉及的是比较多的.所以说想写写这个东西.(ps本文里面的具体通讯信息的时间安排不分先后) 也许最起初的通讯信息的传达是利用.烽火狼烟这一类可以远距离视觉 ...

  2. AngularJS快速入门指南11:事件

    AngularJS拥有自己的HTML事件指令. ng-click指令 ng-click指令定义了AngularJS的click事件. <div ng-app="" ng-co ...

  3. Oracle 查询用户和删除用户

    ------------------------------- 一.查询用户命令: select username from dba_users; 示例: 二.删除用户命名: drop user 用户 ...

  4. Nodejs学习笔记(十三)— PM2

    目录 简介 pm2安装 操作 启动 关闭 其它方式启动/关闭 从PM2中删除 重载和重启 查看详细信息 多项目操作 集群 其它操作 写在之后... 简介 PM2 pm2是一个内置负载均衡的node.j ...

  5. paip.判断文件是否存在uapi python php java c#

    paip.判断文件是否存在uapi python php java c# ==========uapi file_exists exists() 面向对象风格:  File.Exists 作者: 老哇 ...

  6. 为ubuntu操作系统增加root用户

    1:当安装好虚拟机,安装好Ubuntu操作系统后,登陆的时候发现除了自己的设置的用户就是外来用户,其实Ubuntu中的root帐号默认是被禁用了的,所以登陆的时候没有这个账号,但是如果每次使用root ...

  7. Git版本工具的使用

    Git版本工具:Git是一个开源的分布式版本控制系统,可用于敏捷高效的处理任何或大或小的项目.详细介绍地址:https://git-scm.com/downloads.今天主要为大家分享一下怎样把本地 ...

  8. python多线程生成缩略图

    在img目录下7张图片 分别是 11.jpg 22.jpg 33.jpg 44.jpg 55.jpg 66.jpg 77.jpg #encoding=utf-8 import os import ti ...

  9. 几种web数据渲染模板对比

    在web开发,实现视图.数据的分离,由前端工程师专门负责编写html页面,有php后台工程师写php接口返回json数字,那么中间如何将json数据绑定到html页面上有几种方法呢.基于这种需求大体上 ...

  10. 设置360调用样式 IE调用样式

    <%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding= ...