常用查询库 stack、queue、priority_queue

常用查询库 stack、queue、priority_queue

stack

队列是一种后入先出的数据结构
Last in First out;

stack声明

stack定义在头文件<stack>中,用stack<int>s的方式声明一个栈。

stack常用操作

1.  压栈操作        s.push_back();
2.  出栈操作        s.pop();
3.  返回栈顶元素    s.top();
3.  判断空栈        s.empty();               如果栈为空返回true,否则返回false 
4.  栈内元素个数     s.length();/s.size();

Tip

栈没有clear()操作,若是要清空一个栈,可以写成

while(!s.empty()){
    s.pop();
}

queue

队列是一种先入后出的数据结构
Fisrt in First out;

queue声明

queue定义在头文件<queue>中,用queue<int>s的方式声明一个队列。

queue常用操作

1.  入队列操作        s.push();
2.  出队列操作        s.pop();
3.  返回队头元素      s.front();
3.  判断空队列        s.empty();               如果栈为空返回true,否则返回false 
4.  队列内元素个数     s.length();/s.size();

priority_queue

优先队列行为有些像队列,但先出队列的元素不是先进队列的元素,而是队列中优先级最高的元素。

priority_queue声明

priority_queue也定义在头文件<queue>中,用priority_queue<int>s的方式声明一个队列。
此int型优先队列是 越小的整数优先级别越低的队列。
事实上,其原型为

priority_queue<Type, Container, Functional>

Type 为数据类型, Container 为保存数据的容器,Functional 为元素比较方式。
Container 必须是用数组实现的容器,比如 vector, deque 但不能用 list.
STL里面默认用的是 vector. 比较方式默认用 operator<
因此,若是缺省了第三个参数的话,只要定义了“小于”运算符,即可使用优先队列。
特殊情况下,需要自定义比较方式:

struct cmp(){
    bool operator()(const ElemType a,const ElemType b)const{
        return …………;
    }
};

则优先队列声明为

priority_queue<Type, Container, cmp>s;

priority_queue常用操作

几乎同queue
值得注意的是,取队首元素不用s.front();而是使用s.top();

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值