简介
STL(全名Standard Template Library),中文名标准模板库
STL的代码从广义上讲分为三类:algorithm(算法)、container(容器)和iterator(迭代器),几乎所有的代码都采用了模板类和模板函数的方式,这相比于传统的由函数和类组成的库来说提供了更好的代码重用机会。
关于库
queue(队列)
头文件:include<queue>
概念
队列是一种特殊的线性表,是一种先进先出(FIFO)的数据结构。它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作。进行插入操作的端称为队尾,进行删除操作的端称为队头。队列中没有元素时,称为空队列。
常用函数
queue <typename> name;//定义一个队列(需要using namespace std或std::)
name.push(x); //在队尾插入x
name.pop(); //弹出队首(队列不能为空)
name.front(); //访问队首
name.back(); //访问队尾
name.empty(); //查看队列是否为空(返回true或false)
name.size(); //查看队列的元素个数
//队列可以用“=”赋值
priority_queue(优先队列)
头文件:#include<queue>
概念
普通的队列是一种先进先出的数据结构,元素在队列尾追加,而从队列头删除。在优先队列中,元素被赋予优先级。当访问元素时,具有最高优先级的元素最先删除。优先队列具有最高级先出 (first in, largest out)的行为特征。栈(stack)在计算机科学中是限定仅在表尾进行插入或删除操作的线性表。
常用函数
priority_queue <typename> name; //默认为从小到大
priority_queue <int,vector<int>,greater<int> > q;//也可以这样
priority_queue <int,vector<int>,less<int> >q; //从大到小排列
name.push(x); //插入x;
name.pop(); //删除堆顶元素
name.top(); //访问堆顶元素
name.empty(); //判断是否为空
name.size(); //查看元素个数
//赋值可用“=”
stack(栈)
头文件:#include<stack>
概念
栈是一种数据结构,它按照后进先出的原则存储数据,先进入的数据被压入栈底,最后的数据在栈顶,需要读数据的时候从栈顶开始弹出数据。栈是只能在某一端插入和删除的特殊线性表。用桶堆积物品,先堆进来的压在底下,随后一件一件往上堆。取走时,只能从上面一件一件取。读和取都在顶部进行,底部一般是不动的。栈就是一种类似桶堆积物品的数据结构,进行删除和插入的一端称栈顶,另一端称栈底。插入一般称为进栈,删除则称为退栈。 栈也称为后进先出表。
常用函数
stack <typename> name;//定义一个栈(需要using namespace std或std::)
name.push(x); //插入x
name.pop(); //弹出栈顶
name.top(); //查看栈顶元素
name.empty(); //判断栈内是否为空(返回true或false)
name.size(); //查看栈内元素个数
//可以用‘=’与其赋值