STL 是C++标准
每个C++ 编译器都带STL,作者不同
STL 六大组件
容器;
算法;
迭代器;
函数对象;
适配器;
分配器。
境界有四:
0: C++Template
1: 使用
2: 了解
3: 扩展
头文件
algorithms <algorithm>
数值 <numeric>
vector <vector>
list <list>
deque <deque>
stack <stack>
queue <queue>
map <map>
multimap <map>
set <set>
multset <set>
function objects <functional>
iterator adaptor <iterator>
函数对象
声明了operator(), 被声明的类就像一个函数数学符号一样使用。
函数对象经常作为算法或实例化容器时的输入参数。
函数模板和类模板
模板参数:是一个没父娘的没名子的孩子
函数模板:在函数的定义中出现了模板
类模板:在类的定义中出现了模板
模板特化:
把函数/类模板中的模板参数变成一个特定的类,就是模板特化
STL的使用:
#include <vector>
using namespace std;
void foo()
{
vector <int> v(10);
}
STL中的算法都以迭带器为参数,和数据结构的具体实现分离了。