STL
= Standard Template Library
,标准模板库,惠普实验室开发的一系列软件的统称。
它是由Alexander Stepanov、Meng Lee和David R Musser在惠普实验室工作时所开发出来的。这可能是一个历史上最令人兴奋的工具的最无聊的术语。STL实际上是一个非常有用的工具,它使你避免了许多重复的编码工作,大大提高了编码效率。比如,当你需要使用一个队列时,根本不需要自己重新写一个队列,你仅仅需要在头文件中包含,然后在程序中对其类模板进行实例化,就可以使用了,是不是很方便!!!
从根本上说,STL是一些“容器”的集合,这些“容器”有list,vector,set,map等,STL也是算法和其他一些组件的集合。这里的“容器”和算法的集合指的是世界上很多聪明人很多年的杰作。STL的目的是标准化组件,这样就不用重新开发,可以使用现成的组件。STL现在是C++的一部分,因此不用额外安装什么,实际上STL被内建在你的编译系统之内了。本文主要介绍stl中的容器适配器(container adapter)的基本操作。
容器适配器包含队列(queue
)、栈(stack
)和优先级队列(priority_queue
)。
队列容器(queue)
支持先进先出(FIFO)模式的数据存取;需包含头文件。
基本操作 | 描述 |
---|---|
T & back(); | 返回最后一个元素 |
bool empty(); | 如果队列空,则返回真 |
T & front(); | 返回第一个元素 |
void pop(); | 删除第一个元素 |
void push(const T & val); | 在末尾加入一个元素 |
size_type size(); | 返回队列中元素的个数 |
栈容器(stack)
支持先进后出(FILO)模式的数据存取;需包含头文件。
基本操作 | 描述 |
---|---|
== <= >= < > != | 比较栈 |
bool empty(); | 栈为空则返回真 |
void pop(); | 移除栈顶元素 |
void push(const T & val); | 在栈顶增加元素 |
size_type size(); | 返回栈中元素的数目 |
T & top(); | 返回栈顶元素 |
优先级队列容器(priority_queue)
每次从队列中取出的应是具有最高优先级(priority)的元素,而优先级则与每一个元素的值(value)相关联;需包含头文件。
基本操作 | 描述 |
---|---|
bool empty(); | 如果优先队列为空,则返回真 |
void pop(); | 删除第一个元素 |
void push(const T & val); | 加入一个元素 |
size_type size(); | 返回优先队列中拥有的元素的个数 |
T & top(); | 返回优先队列中有最高优先级的元素 |