1. 泛型编程GP与面向对象OOP
GP(Generic Programming)就是使用模板template为主要工具来编写程序。
OOP(Object-Oriented Programming)面向对象编程就是使用继承,利用虚函数实现的多态技术编写程序。
GP与OOP最大的区别就是:
GP试图将datas和methods分开
OOP试图将datas和methods关联起来
2. C++ Standard Library vs. Standard Template Library
C++ Standard Library——C++标准库(包括STL,范围比STL大)
STL(Standard Template Library)——C++标准模板库(主要包括六大部件)
STL是泛型编程最成功的作品。
STL六大部件:
容器(Containers)
分配器(Allocators)
算法(Algorithms)
迭代器(Iterators)
适配器(Adapters)
仿函数(Functors)
3. 我们的目标:
level 0:使用C++标准库
level 1:了解C++标准库(胸中自有丘壑)
level 2:良好使用C++标准库
level 3:扩充C++标准库
4. C++头文件
STL主要以头文件的形式存在
使用C++的头文件的方式:(不带.h后缀名)
#include <vector>
使用C的头文件的方式:(可以带也可以不带,如果不带要在前面加“c”)
#include <cstdio>
或者
#include <stdio.h>
命名空间std(standard的缩写)
新式头文件内的组件都封装在叫做std的命名空间中,使用库函数或者组件式要显示声明使用std名字空间或者std空间中的某些组件:
using namespace std; //一次开放所有 (推荐)
或者
using std::cout; //一个一个的打开
旧式的头文件不包含在std命名空间内
5. C++标准库的版本
Visual C++系列
Dev C++ 5.11(使用的是GNU4.9.2版本)
6. 时间复杂度
7. “前闭后开”区间
【a, b】前闭后闭区间 a <= x <= b
【a, b)前闭后开区间 a <= x < b
(a, b)前开后开区间 a < x < b
标准库规定,STL所有容器的头尾指针满足前闭后开区间。即:
c.begin() —— 指向第一个元素
c.end() ——指向最后一个元素的下一个位置