本文总结了几个好的C++网站,以及C++方面的经典书籍。所列书籍或标准可以到这里找找电子版。
wikipedia关于C++有关条目,注意看后面“参考文献”和“外部链接”:
C++ programming language:介绍C++
C++ Standard Library:C++标准库,介绍了所有51个头文件
C++ STL:STL是C++标准库的一部分(也有人用STL表示C++标准库)
Boost (C++ libraries):被称为准标准库,C++11标准库很多是采纳Boost库的
Outline of C++:列举了和C++相关的概念,如“一次定义准侧”、“元编程”
C++学习参考网站:
cplusplus.com:查库函数特方便,有示例代码
cppreference.com:致力于提供convenient version of the C and C++ standards
learncpp.com:一个C++教程
cs.stmarys.ca/~porter/:有C++标准库快速预览文章
Bjarne Stroustrup:C++之父的主页
The C++ Standards Committee:C++标准委员会
Standard C++ Foundation:标准C++基金会
boost.org:Boost库主页
C++的经典书籍(一个网站做了很好的列举):
Programming -- Principles and Practice Using C++, Bjarne Stroustrup, 2008,有中文译本:C++程序设计原理与实践
The C++ Programming Language (4th Ed), Bjarne Stroustrup, 2013,旧版有中文译本:C++程序设计语言
C++ Primer (5th Ed), Stanley Lippman et al., 2012,有中文译本
Inside The C++ Object Model, Stanley Lippman, 1996,有中文译本:深度探索C++对象模型
Effective C++, Scott Meyers,还有More Effective C++,有中文译本
Exceptional C++, Herb Sutter,More Exceptional C++,有中文译本
The C++ Standard Library -- A Tutorial and Reference (2nd Ed), Nicolai M. Josuttis, 2012,旧版有中文译本:C++标准程序库
C++ Templates -- The Complete Guide, Vandevoorde David, 2002,有中文译本:C++ Templates中文版
C++ Template Metaprogramming -- Concepts, Tools, and Techniques from Boost and Beyond, Abrahams David et al., 2004,有中文译本:C++模板元编程
C++标准(C++标准的进程见标准C++基金会):
ISO/IEC 14882:1998(C++98)
ISO/IEC 14882:2003(C++98修订,建议参考)
ISO/IEC 14882:2011(C++11)
C语言相关:
ISO/IEC 9899:1990(经典C语言)
ISO/IEC 9899:1999(俗称C99)
The C Programming Language (2nd Ed), Dennis M. Ritchie et al., 1988,有中文译本:C程序设计语言
面向对象相关:
UML Distilled -- A Brief Guide to the Standard Object Modeling Language (3rd Ed), Martin Fowler, 2003,有中文译本:UML精粹:标准对象建模语言简明教程
Design Patterns -- Elements of Reusable Object-Oriented Software, Erich Gamma et al., 1994,有中文译本:设计模式--可复用面向对象软件的基础
Object-Oriented Analysis & Design -- Understanding System Development with UML 2.0, Mike O‘Docherty, 2005,有中文译本:面向对象分析与设计
计算理论、算法:
Introduction to the Theory of Computation (3rd Ed), Michaael Sipser, 2012,旧版有中文译本:计算理论导引
Introduction to Algorithms (3rd Ed), Thomas H.Cormen et al., 2009,有中文译本:算法导论
C++编程练习:
C++的学习应该以编程训练为主,这应该都认同吧。如果觉得没有C++编程练习的途径,我给你推荐一个:OJ,全称Online Judge,中文叫做在线测评系统。有很多问题,你来编程解决,它在线线测试你程序运行结果正确性,一般还附加程序运行时间和内存消耗限制(一般是1秒和1MB)。对同问题的不同解决代码,会用运行时间和消耗内存排名。大名鼎鼎的ACM程序设计竞赛(ACM International Collegiate Programming Contest,ACM-ICPC)就采用类似形式。下面是几个有名的OJ,题目的难度从天才级到A+B级都有:
Baylor University OJ (该大学是ACM-ICPC总部,上面有ACM-ICPC题)
UVa Online Judge(配合《算法竞赛入门经典--训练指南》(刘汝佳等,清华大学出版社,2012))
点击“Problems”浏览题目,“Submit”提交代码,注册账号开始挑战吧~