第1章 致读者
1.1 本书的结构
1.2 学习 C++
集中关注概念,不要迷失于细节
不要盲目把其他语言的技术应用于 C++
逐步推进的学习
1.3 C++的设计
简单性是一个重要设计准则,简化语言的定义
1.3.1 效率和结构
1.3.2 哲学注记
1.4 历史注记
1.5 C++的使用
1.6 C 和 C++
1.6.1 给 C 程序员的建议
1.6.2 给 C++程序员的建议
1.7 有关在 C++里编程的思考
1.8 忠告
第2章 C++ 概览
2.1 什么是 C++
C++是一种通用程序设计语言,特别是面向系统程序设计,它
——是一个更好的 C。
——支持数据抽象。
——支持面向对象的程序设计。
——支持通用型程序设计。
2.2 程序设计规范
2.3 过程式程序设计
确定你需要哪些过程;采用你能找到的最好的算法。
2.3.1 变量和算术
2.3.2 检测和循环
2.3.3 指针和数组
2.4 模块程序设计
确定你需要那些模块;将程序分为一些模块,使数据隐藏于模块之中。
2.4.1 分别编译
2.4.2 异常处理
2.5 数据抽象
2.5.1 定义类型的模块
2.5.2 用户定义类型
确定你需要哪些类型;为每个类型提供完整的一组操作。
2.5.3 具体类型
2.5.4 抽象类型
2.5.5 虚函数
2.6 面向对象的程序设计
2.6.1 具体类型的问题
2.6.2 类层次结构
确定你需要哪些类;为每个类提供完整的一组操作;利用继承去明确的表示共性。
2.7 通用型程序设计
确定你需要那些算法;将它们参数化,是他们能够对各种各样适当的类型和数据结构工作。
2.7.1 容器
2.7.2 通用型算法
2.8 附言
2.9 忠告
第3章 标准库概览
3.1 引言
3.2 Hello, world !
#include <iostream>
main() {
std::cout << "Hello, world !\n";
}�
3.3 标准库名字空间
std::
3.4 输出
cout << "the value of i is " << i << '\n';
3.5 字符串
s2 += '\n';
3.5.1 C 风格的字符串
一个 C 风格的字符串就是一个以0字符结束的字符数组
3.6 输入
cin >> i;
geline(cin, str);
3.7 容器
一个以保存一些有用的基本操作用途的类通常被称为一个容器。
为给定的工作提供适当的容器,并提供一些有用的基本操作来支持它们,这些在任何程序的构造过程中都是最重要的步骤。
3.7.1 向量——vector
vector<Entry> phone_book(1000);
phone_book.resize(phone_book.size()+5);
3.7.2 范围检查
按照默认方式,标准库的 vector 并不提供对区间范围的检查。
3.7.3 表——list
list<Entry> phone_book;
如果使用的是表,我们将倾向于不采用通过下标访问元素(像对向量的一般做法那样),而可能是检索这个表,去寻找具有某个给定值的元素。
3.7.4 映射——map
map<string,int>phone_book;
map 就是值的对偶容器。在用它的第一个类型(称为关键码)的某个值去索引时,map 将返回其第二个类型的(称为值类型,或者映射类型)的对应值。
3.7.5 标准容器
标准库容器的总结 | |
---|---|
vector<T> | 变长向量 |
list<T> | 双向链表 |
queue<T> | 队列 |
stack<T> | 堆栈 |
deque<T> | 双端队列 |
priority_queue<T> | 按值排列的队列 |
set<T> | 集合 |
multiset<T> | 集合,值可重复出现 |
map<key,value> | 关联数组 |
multimap<key,value> | 关联数组,关键字可重复出现 |
3.8 算法
3.8.1 迭代器的使用
3.8.2 迭代器的类型
3.8.3 迭代器的I/O
3.8.4 遍历和谓词
3.8.5 使用成员函数的算法
3.8.6 标准库算法
3.9 数学
3.9.1 复数
3.9.2 向量算术
但是它并不支持数学的向量运算。