标准模板库(Standard Template Library )最初是由惠普公司提出来的,经过多年努力,C++标准委员会最终在1994年将STL纳入标准库中。STL是通过C++语言进行实现的,并作为一个泛型化的数据结构和算法库,简化了许多编程任务,而且几乎C++标准库函数都是使用模板实现的。
STL分为三类:
容器(container):用于容纳其它类型的类对象,STL提供如向量、列表等诸多不同特性的容器。
1.顺序容器 vector,list,deque
2.关联容器 set,multiset,map,multimap
3.容器适配器)stack,queue,priority_queue
迭代器(iterator):是一种智能指针,用于指向容器中或者流中的对象,并提供一定的访问方法。
1. 输入迭代器(input iterator)
2.输出迭代器(output iterator)
3.向前迭代器(forward iterator
4.双向迭代器(bidirectional iterator)
5.随桢访问迭代器(random-access iterator)
算法(algorithm):它是STL的核心部分,提供一系列处理元素的特殊方法,如对容器中的元素进行排序、搜索等操作。
STL提代了80多种算法,基本分为三大类:
1.非修改性算法,这种算法不修改容器 内容,只是从容器中获取信息。比如:find(),find_end(),lower_bound(),search()等。
2.修改性算法,通过插入,删除,重排等操作改变容器中包含的元素,以改变元素的值,比如:copy(),swap(),replace(),remove(),rotate()等。
3.排序,合并和相关操作,改变容器中序列的顺序。比如:sort(),binary_search(),merge(),min(),max()等。