首页 / C++ / C++ STL 栈和队列
C++ STL 栈和队列
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了C++ STL 栈和队列,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1813字,纯文字阅读大概需要3分钟。
内容图文
(转载)原文地址
一.解释:
1.栈
栈是一种特殊的线性表。其特殊性在于限定插入和删除数据元素的操作只能在线性表的一端进行。如下所示:
结论:后进先出(Last In First Out),简称为LIFO线性表。
举个例子:你在洗碗把洗好的碗编号为1、2、、、n依次摞起来,1号在最下面,向上编号依次增加,然后再从上到下把碗放好,这样的话,先被洗的碗,就后被放好。
2.队列
队列(Queue)也是一种运算受限的线性表,它的运算限制与栈不同,是两头都有限制,插入只能在表的一端进行(只进不出),而删除只能在表的另一端进行(只出不进),允许删除的一端称为队尾(rear),允许插入的一端称为队头 (Front),如图所示:
结论:队列的操作原则是先进先出的,所以队列又称作FIFO表(First In First Out)
举个例子:超市付账的时候排队,先来的先排在最前面,后来的后排在队伍最后面,付账时排在队伍前面的先付账,排在后面的后付账。
二.用法
1.头文件
#include<queue>// 队列 #include<stack>//栈
2.定义方式
stack<int> s;//参数也是数据类型,这是栈的定义方式 queue<int> q; //参数是数据类型,这是队列的定义方式
3.常用操作
栈: s.empty()//如果栈为空返回true,否则返回false s.size()//返回栈中元素的个数 s.pop()//删除栈顶元素但不返回其值 s.top()//返回栈顶的元素,但不删除该元素 s.push(X)//在栈顶压入新元素 ,参数X为要压入的元素
队列: q.empty()// 如果队列为空返回true,否则返回false q.size() // 返回队列中元素的个数 q.pop() //删除队列首元素但不返回其值 q.front() // 返回队首元素的值,但不删除该元素 q.push(X) //在队尾压入新元素 ,X为要压入的元素 q.back() //返回队列尾元素的值,但不删除该元素
三、例子
#include <iostream> #include <algorithm> #include <cstdio> #include <cstring> #include <queue> #include <stack> #include <vector> using namespace std; int main() { queue<int> q; stack<char> s; q.push(1); cout << q.enpty() << endl; q.push(2); cout << q.front() << endl; q.pop(); cout << q.front() << endl; q.pop(); cout << q.empty() <<endl; s.push(a); cout << s.top() <<endl; s.push(b); cout << s.top(); s,pop(); cout << s.top(); }
内容总结
以上是互联网集市为您收集整理的C++ STL 栈和队列全部内容,希望文章能够帮你解决C++ STL 栈和队列所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。