【STL容器讲解—栈队列】
stack & queue
- 栈的实现--stack
- stack图示:
- stack相关操作:
- 构造函数
- 赋值操作
- 数据存取
- 大小操作
- 队列实现--queue
- 队列图示:
- 队列相关操作
- 构造函数
- 赋值操作
- 数据存取
- 大小操作
栈的实现–stack
stack是一种先进后出(Frist In Last Out)的容器,stack容器只能对栈顶元素进行操作。因此需注意的是stack容器是不支持遍历的。但是栈可以返回栈中元素个数 size(),在进行入栈和出栈时记录元素个数,同时栈中还存在判空操作 empty();
stack图示:
stack相关操作:
构造函数
stack容器中封装了两个构造函数,无参构造函数和有参的拷贝构造函数
//stack<T> stk;
//stak(const stack& stk);
stack<int> stk1;
for (int i = 0; i < 10; i++)
{stk1.push(i + 1);
}stack<int>stk2(stk1);
stack容器在使用是头文件需包含进来
#include<stack>
赋值操作
//stack& operator=(const stack& stk);//重载=赋值操作
stack<int> stk3 = stk1;
数据存取
push(elem);//压栈
pop();//弹栈
top();//返回栈顶元素
while (!stk1.empty())
{cout << stk1.top() << " ";stk1.pop();
}
//输出为:10 9 8 7 6 5 4 3 2 1
- deque& operator=(deque& deqT);//重载operator=运算符
deque<int>deqT1;
T1.push_back(1);
deque<int>deqT2;
deqT2 = deqT1;
大小操作
empty();
size();
if (stk1.empty())
{cout << "stk1已经是空的了" << endl;
}
cout << stk3.size() << endl;//10
队列实现–queue
队列与栈正相反,队列是一种先进先出(frist in frist out)的容器,它只允许在一端进行插入操作,另一端进行删除操作,队列中只有队头和队尾元素能够被外界获取,并且队列容器不能进行遍历操作。
队列图示:
队列相关操作
构造函数
/*
构造函数queue<T>que;queue(const queue<T>& que);
*/
queue<int> que1;
que1.push(1);
que1.push(2);
que1.push(3);
que1.push(4);
queue<int>que2(que1);
赋值操作
/*
赋值操作queue& operator=(queue<T>& que);
*/
queue<int>que3;
que3 = que2;
while (!que3.empty())
{cout << que3.front() << " ";//1 2 3 4que3.pop();
}
数据存取
/*
数据存取
push(elem);//将elem进入队尾
pop();//弹出队首元素
front();//获取队头元素
back();//获取队尾元素
*/
while (!que2.empty())
{cout << "队头元素为:" << que2.front() << endl;cout << "队尾元素为:" << que2.back() << endl;que2.pop();
}
大小操作
/*
大小操作empty();//判空操作size();//返回queue容器中元素个数
*/
if(!que2.empty())
{******
}
cout << "队列元素为:" << que2.size() << endl;
【STL容器讲解—栈队列】相关推荐
- C++ STL容器:栈(stack)
目录 栈的定义 栈的结构 栈的基本操作 栈的定义方式和函数调用 经典例题 数组模拟 S T L STL STL 容器 s t a c k stack stack 做法 栈的定义 先进后出的线性表. 栈 ...
- 【STL容器讲解—deque】
STL中deque容器讲解 deque容器的实现 相对于vector容器的区别 原因: deque内部工作原理 构造函数 容器操作 插入操作 deque容器的遍历操作 大小操作 插入和删除 数据存取 ...
- 记一道面试题:STL两个栈实现一个队列。
面试题目 STL两个栈实现一个队列. 要求:只能使用栈的pop(),top()和push(),以及测试栈是否为空 empty()四个操作. 来实现队列的clear(), push(),pop(),ba ...
- C++STL之stack栈容器
C++STL之stack栈容器 1. 再谈栈 回顾一下之前所学的栈,栈是一种先进后出的数据结构,而实现方式需要创建多个结构体,通过链式的方式进行实现,这是标准的栈的思路,而在STL中栈可以以更为简单的 ...
- STL中的栈结构和队列结构
队列和栈都是线性结构,但他们都是受限的线性表,即他们的操作是线性表操作的子集,利用线性表作为栈和队列类的基类会大大减轻编程工作量,提高代码的重用性 栈结构--------头文件为<stack&g ...
- java中定义一个栈容器_Java 容器之 Connection栈队列及一些常用
集合家族图 ---|Collection: 单列集合 ---|List: 有存储顺序 , 可重复 ---|ArrayList: 数组实现 , 查找快 , 增删慢 ---|LinkedList: 链表实 ...
- 用法 stl_C++STL 容器篇
前言 上一章节主要是详细介绍了C++泛型编程基础,不清楚的可以回顾一下哦.本章节主要针对于C++STL(标准模板类库)做个详细介绍.标准模板类库也就是别人写的模板类,主要内容是各种数据结构的封装,以及 ...
- C++ 笔记(19)— 标准模板库(STL容器、STL迭代器、STL算法、STL容器特点、STL字符串类)
C++ 标准库可以分为两部分: 标准函数库: 这个库是由通用的.独立的.不属于任何类的函数组成的.函数库继承自 C 语言. 面向对象类库: 这个库是类及其相关函数的集合. C++ 标准库包含了所有的 ...
- c++ stl容器vector删除(erase),遍历等基本用法介绍及头文件
Vectors 包含着一系列连续存储的元素,其行为和数组类似.访问Vector中的任意元素或从末尾添加元素都可以在常量级时间复杂度内完成,而查找特定值的元素所处的位置或是在Vector中插入元素则是线 ...
- 【小白学习C++ 教程】二十二、C++ 中的STL容器stack、queue和map
@Author:Runsen STL 中的栈容器是一种容器适配器.在栈容器中,元素在一端插入并在同一端删除. stack 为了实现堆栈容器,我们需要在我们的程序中包含头文件<stack>. ...
最新文章
- 苹果设置网易邮箱收件服务器,如何在iPhone 3/4、iPod touch的邮件应用程序中使用IMAP服务...
- Python---多任务介绍以及Thread的基本使用
- 用户注册模块详解(30)
- python 向量_关于Python中的向量相加和numpy中的向量相加效率对比
- hadoop datanode启动失败
- Elasticsearch Reference [6.7] » Modules » Network Settings
- java)_Java NIO系列教程(一) Java NIO 概述
- weblogic jms消息 删除_利用 Kafka 设置可靠的高性能分布式消息传递基础架构
- jdom 读取xml_JDOM分析器–将XML文件读取为Java对象
- 数据结构题及c语言版 答案,数据结构(C语言版)1800道题及答案[完整版]
- 给大家推荐一款冰点文档下载器(免登陆,免积分)下载百度,豆丁,畅享网,mbalib,hp009,mab.book118文库文档
- 基于matlab的微分例题,matlab程序设计常微分方程编程例题答案数学.doc
- 传统的期货交易方式为计算机撮合成交,[期货知识]期货价格是怎么形成的-计算机撮合成交 - 南方财富网...
- 简体中文与繁体中文互转
- Markdownpad2报错: Html Rendering Error (An error occurred with the Html rendering component.)
- linux客户端连接iscsi,配置ISCSI客户端(LINUX)redhat5-iSCSI-INITIATOR
- 【WLAN】Android 13 p2p / wifi direct介绍
- 登陆mysql的命令行
- 计算机毕业设计Java印染公司信息管理系统(系统+程序+mysql数据库+Lw文档)
- 简单爬取豆瓣电影相关信息