码迷,mamicode.com
首页 > 其他好文 > 详细

STL之stack容器和queue容器

时间:2019-08-20 12:39:26      阅读:95      评论:0      收藏:0      [点我收藏+]

标签:nbsp   out   queue   name   push   opera   数据   ret   代码示例   

摘要:本文主要介绍了两种容器——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 }

STL之stack容器和queue容器

标签:nbsp   out   queue   name   push   opera   数据   ret   代码示例   

原文地址:https://www.cnblogs.com/lzy820260594/p/11381987.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!