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

时间: 2024-09-28 19:23:26

STL之stack容器和queue容器的相关文章

STL学习系列五:Queue容器

Queue简介 queue是队列容器,是一种“先进先出”的容器. queue是简单地装饰deque容器而成为另外的一种容器. #include <queue> 1.queue对象的默认构造 queue采用模板类实现,queue对象的默认构造形式:queue<T> queT; 如: queue<int> queInt; //一个存放int的queue容器. queue<float> queFloat; //一个存放float的queue容器. ... //尖括

stl容器学习——queue,stack,list与string

目录 string stack queue list 点击上面的内容可以实现跳转哦 简介:本文记录了对string list queue stack四个容器的学习总结,包含有四种容器常用的函数介绍和一些使用过程中碰到的细节总结,在list容器中介绍了迭代器的使用. 头文件 想要用哪一种容器,就要加上对应的头文件 比如想要使用queue , 就要加上 #include<queue> 以此类推,想要使用STL库中的容器,只要加上它们的头文件就好. string 目录部分 1.string的定义及初

STL之容器适配器queue的实现框架

说明:本文仅供学习交流,转载请标明出处,欢迎转载! 上篇文章STL之容器适配器stack的实现框架已经介绍了STL是如何借助基础容器实现一种常用的数据结构stack (栈),本文介绍下另外一种STL内部定义的另外一种STL容器适配器queue(队列). 对于接触过数据结构的人来说,队列并不陌生,它是一种FIFO(first in first out)的数据结构.与栈相比,队列的不同之处在于:(1)队列是一种先进先出的数据结构,而栈则是一种后进先出的数据结构:(2)队列支持首尾两端的访问操作,而栈

浅谈C++ STL queue 容器

浅谈C++ STL queue 容器 本篇随笔简单介绍一下\(C++STL\)中\(queue\)容器的使用方法和常见的使用技巧.\(queue\)容器是\(C++STL\)的一种比较基本的容器.我们在学习这个容器的时候,不仅要学到这个容器具体的使用方法,更要从中体会\(C++STL\)的概念. queue容器的概念 \(queue\)在英文中是队列的意思.队列是一种基本的数据结构.而\(C++STL\)中的队列就是把这种数据结构模板化了.我们可以在脑中想象买票时人们站的排队队列.我们发现,在一

(C/C++学习)27.STL之queue容器

说明:queue 是一种先进先出(First In First Out,FIFO)的数据结构,它有两个出口,queue容器允许从一端新增元素,从另一端移除元素. 注意:Queue 所有元素的进出都必须符合”先进先出”的条件,只有 queue 的顶端元素,才有机会被外界取用.Queue 不提供遍历功能,也不提供迭代器. 1.构造函数 1 queue<T> queT;//queue 对象的默认构造形式 2 queue(const queue &que);//拷贝构造函数 2.存取插入以及删

STL 笔记(一): 顺序容器 vector、list、deque

STL 容器类 C++ STL 体现了泛型编程的思想,广义上分为: 容器 (Container),迭代器 (Iterator),算法 (Algorithm).容器类可以包含一组相同类型或不同类型的对象,包含相同类型对象时称为同类容器类,包含不同类型对象时,称为异类容器类.容器类库共包含 10 种容器,分为三类: 顺序容器:向量 (vector).双端队列 (deque).列表 (list); 关联容器:集合 (set).多重集合 (multiset).映射 (map)和多重映射 (multima

STL(标准模板库)理论基础,容器,迭代器,算法

基本概念 STL(Standard Template Library,标准模板库)是惠普实验室开发的一系列软件的统称.现然主要出现在C++中,但在被引入C++之前该技术就已经存在了很长的一段时间. STL的从广义上讲分为三类:algorithm(算法).container(容器)和iterator(迭代器),容器和算法通过迭代器可以进行无缝地连接.几乎所有的代码都采 用了模板类和模板函数的方式,这相比于传统的由函数和类组成的库来说提供了更好的代码重用机会.在C++标准中,STL被组织为下面的13

STL学习——Stack/Queue篇

STL学习--Stack/Queue篇 Stack 概述 stack是一种先进先出的数据结构,只有一个出口,stack允许新增元素,移除元素,取得最顶端元素.但除了最顶端外,没有任何办法可以存取stack其他元素.即不允许遍历行为. 实现 stack实现是以容器为底部结构的,将容器的接口改变,使其符合"先进先出"特性,便形成了一个栈.具体实现可以将底部deque的头端开口封闭,便实现了stack.因为stack具有"修改某物接口,形成另一种风貌"性质,故称为&quo

stl中顺序性容器,关联容器两者粗略解释

什么是容器 首先,我们必须理解一下什么是容器,在C++ 中容器被定义为:在数据存储上,有一种对象类型,它可以持有其它对象或指向其它对像的指针,这种对象类型就叫做容器.很简单,容器就是保存其它对象的对象,当然这是一个朴素的理解,这种"对象"还包含了一系列处理"其它对象"的方法,因为这些方法在程序的设计上会经常被用到,所以容器也体现了一个好处,就是"容器类是一种对特定代码重用问题的良好的解决方案". 容器还有另一个特点是容器可以自行扩展.在解决问题时