STL之stack容器和queue容器

摘要:本文主要介绍了两种容器——stack容器和queue容器。

1、基本概念

 stack容器queue容器

容器介绍

stack是一种先进后出(First In Last Out,FILO)的数据结构,它只有一个出口,

形式如图所示。stack容器允许新增元素,移除元素,取得栈顶元素,但是除了

最顶端外,没有任何其他方法可以存取stack的其他元素。换言之,stack不允

许有遍历行为。

有元素推入栈的操作称为:push,将元素推出stack的操作称为pop.

Queue是一种先进先出(First In First Out,FIFO)的数据结构,

它有两个出口,queue容器允许从一端新增元素,从另一端移

除元素。

迭代器

Stack所有元素的进出都必须符合”先进后出”的条件,只有stack顶端的元素,

才有机会被外界取用。Stack不提供遍历功能,也不提供迭代器。

Queue是一种先进先出(First In First Out,FIFO)的数据结构,

它有两个出口,queue容器允许从一端新增元素,从另一端移除元素。

 

2、常用API

 stack容器queue容器
API意义API意义
构造函数

stack<T> stkT

 

stack采用模板类实现,

stack对象的默认构造形式

 queue<T> queT queue采用模板类实现,queue对象的默认构造形式

stack(const stack &stk)

拷贝构造函数

 queue(const queue &que) 拷贝构造函数
存取、插入和删除操作   push(elem) 往队尾添加元素
pop()从队头移除第一个元素
back()返回最后一个元素
front()返回第一个元素

赋值操作

stack& operator=(const stack &stk)
重载等号操作符 queue& operator=(const queue &que) 重载等号操作符

数据存取操作

 

push(elem)向栈顶添加元素      
pop()从栈顶移除第一个元素
top()返回栈顶元素

stack大小操作

empty()

 判断堆栈是否为空 empty() 判断队列是否为空

size()

返回堆栈的大小size()返回队列的大小

3、代码示例

 1 #include<iostream>
 2 #include <stack>
 3 #include <queue>
 4 
 5 using namespace std;
 6 
 7 void test01() {
 8     stack<int>s;  //定义一个stack容器
 9     s.push(10);   //将数压入容器
10     s.push(20);
11     s.push(30);
12     s.push(40);
13 
14     while (s.size()!=0)
15     {
16         cout << s.top() << endl;  //只可以栈顶输出
17         s.pop();    //将输出的数弹出  , 输出40,30,20,10
18     }
19     cout << s.size() << endl;  //完全弹出变成0
20 }
21 
22 void test02() {
23     queue<int>q;
24     q.push(10);
25     q.push(20);
26     q.push(30);
27     q.push(40);
28 
29     while (!q.empty())
30     {
31         cout << q.front() << endl;
32         cout << q.back() << endl;  //头尾均可以输出
33 
34         q.pop();  //将队头弹出
35     }
36     cout << q.size() << endl;
37 }
38 
39 int main() {
40     test01();
41     test02();
42     system("pause");
43     return 0;
44 }

转载于:https://www.cnblogs.com/lzy820260594/p/11381987.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值