STL是一种泛型编程(generic programming)
- STL提供了一组表示容器、迭代器、函数对象和算法的模板。
- 面向对象编程关注的是编程的数据方面,而泛型编程关注的是算法。
- 他们之间的共同点是抽象和创建可重用代码,但是他们的理念截然不同。
1、容器(container)
- 容器类是一个与数组类似的单元,但是他是管理序列的类,也是容纳一组对象或对象集的类。
- 通过容器类提供的成员函数,可以实现例如向序列中插入、删除、查找元素等操作;
- 这些成员函数通过返回迭代器来指定元素在序列中的位置。
容器主要有以下分类:
二、泛型算法(generic algorithm)
- 模板中的算法不依赖与具体的数据类型,而泛型算法更进一步不依赖于具体的容器。
- 这也是STL最大的优点,就是他提供能在各种容器中通用的算法,例如:插入、排序、查找、删除等。
- 一种算法可以适用于多种容器,故称为泛型算法;
- 泛型算法之所以能够用于各种容器,