STL简介
STL是Standard Template Library的简称,中文名标准模板库,惠普实验室开发的一系列软件的统称。它是由Alexander Stepanov、Meng Lee和David R Musser在惠普实验室工作时所开发出来的。
从根本上说,STL是一些“容器”的集合,这些“容器”有list,vector,set,map等,STL也是算法和其他一些组件的集合。这里的“容器”和算法的集合指的是世界上很多聪明人很多年的杰作。STL的目的是标准化组件,这样就不用重新开发,可以使用现成的组件。STL现在是C++的一部分,因此不用安装额外的库文件。
STL的组成
容器(containers)
迭代器(iterators)
空间配置器(allocator)
配接器(adapters)
算法(algorithms)
仿函数(functions)
容器分类
序列式容器
数组(array);
向量(vector):连续存储的元素;
列表(list):有节点组成的双向链表;
双端队列(deque):连续存储的指向不同元素的指针所组成的数组。
适配器(在一般序列容器的基础上提供了不同的功能,用序列容器实现的新容器)
栈(stack);
队列(queue);
优先队列(priority_queue):元素的次序由作用于所存储的值对上的某种谓词决定的一种队列。
关联式容器
集合(set):由节点组成的红黑树,没有两个不同的元素能够拥有相同的次序;
多重集合(multiset):允许存在两个次序相等的元素的集合;
映射(map):由{键,值}对组成的集合;
多重映射(multimap):允许键对由相等的次序的映射
迭代器
几乎STL提供的所有算法都是通过迭代器存取元素序列进行工作的,每一个容器都定义了其本身所专有的迭代器,用以存取容器中的元素。