C++ 标准库类型stackqueue

C/C++总述:Study C/C++-CSDN博客 

栈与队列详解(数据结构):栈与队列_禊月初三-CSDN博客


stack(栈) 

stack的常用函数

函数说明功能说明
stack()构造空栈
push(T& val)将元素val压入栈中
size()返回栈中元素个数
empty()检测栈是否是空,如果是空返回true
top()返回栈顶元素的引用
pop()将栈顶元素弹出栈

stack的模拟实现

#include<iostream>
#include<vector>
using namespace std;template<typename T,typename act = vector<T>>
class Stack {
private://如果没有显示给出act的类型// act == vector<T>//创建act类型的变量arr//如果act是类类型,那么arr是对象act arr;
public://无参构造Stack() {}//元素入栈void Push(const T& value = T()) {arr.push_back(value);}//元素出栈void Pop() {arr.pop_back();}//返回栈中元素个数size_t Size()const {return arr.size();}//判断栈是否是空bool Empty() const {return arr.empty();}//普通栈 返回栈顶元素T& Top() {return arr.back();}//const栈 返回栈顶元素const T& Top()const {return arr.back();}
};int main() {                                                                                                                                                        Stack<int> s;s.Push(1);s.Push(2);cout << s.Top() << endl;cout << s.Size() << endl;s.Pop();cout << s.Empty() << endl;
}

queue(队列) 

queue的常用函数 

函数说明功能说明
queue()构造空的队列
push(T& val)将元素val压入队中
size()返回队列中有效元素的个数
empty()检查队列是否是空,如果是空返回true
front()返回队头元素的引用
back()返回队尾元素的引用
pop()将队头元素出队列

queue的模拟实现

#include<iostream>
#include<vector>
using namespace std;template<typename T,typename act = vector<T>>
class Queue {
private:act arr;
public://无参构造Queue() {}//元素入队列void Push(const T& value = T()) {arr.push_back(value);}//队头元素出队列void Pop() {arr.erase(arr.begin());}//返回队列元素个数size_t Size() const {return arr.size();}//判断队列是否为空bool Empty() {return arr.empty();}//普通对象 返回队头元素的引用T& Front() {return arr.front();}//const对象 返回队头元素的引用const T& Front() const{return arr.front();}//普通对象 返回队尾元素的引用T& Back() {return arr.back();}//const对象 返回队尾元素的引用const T& Back() const{return arr.back();}
};int main() {Queue<int> q;q.Push(1);q.Push(2);cout << q.Size() << endl;cout << q.Front() << endl;cout << q.Back() << endl;q.Pop();cout << q.Empty() << endl;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/793745.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

面经分享(Flask,轻量级Web框架)

1. Flask的核心特点 a. 轻量级&#xff1a;核心简洁&#xff0c;只提供了基本的功能&#xff0c;其他高级功能可以通过插件或扩展来添加。 b. 灵活性&#xff1a;允许开发者选择适合自己项目的组件和工具&#xff0c;没有强制的项目结构和设计模式。 c. 易于扩展&#xff1a;提…

HTML:框架

案例&#xff1a; <frameset cols"5%,*" ><frame src"left_frame.html"><frame src"right_frame.html"> </frameset> 一、<frameset>标签 <frameset>标签&#xff1a;称为框架标记&#xff0c;将一个HTML…

mysql 判断一张表是否存在的方法

查询表是否存在 使用 SHOW TABLES SHOW TABLES LIKE %tbl_tabl%;结果: 查询 INFORMATION_SCHEMA // like 匹配 SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES where TABLE_SCHEMA test AND TABLE_NAME like %tbl%; // 完全匹配 SELECT TABLE_NAME FROM INFORMATION_SC…

element UI中设置图片的高度并支持PC和手机自适应

系列文章目录 一、elementui 导航菜单栏和Breadcrumb 面包屑关联 二、elementui 左侧导航菜单栏与main区域联动 三、elementui 中设置图片的高度并支持PC和手机自适应 四、elementui 实现一个固定位置的Pagination&#xff08;分页&#xff09;组件 文章目录 系列文章目录…

《Java面试自救指南》(专题二)计算机网络

文章目录 力推的计网神课get请求和post请求的区别在浏览器网址输入一个url后直到浏览器显示页面的过程常用状态码session 和 cookie的区别TCP的三次握手和四次挥手七层OSI模型&#xff08;TCP/IP协议模型&#xff09;各种io模型的知识http协议和tcp协议的区别https和http的区别…

【Unity每日一记】如何让Sprite精灵图集的背景图层变成透明,方便切割

&#x1f468;‍&#x1f4bb;个人主页&#xff1a;元宇宙-秩沅 &#x1f468;‍&#x1f4bb; hallo 欢迎 点赞&#x1f44d; 收藏⭐ 留言&#x1f4dd; 加关注✅! &#x1f468;‍&#x1f4bb; 本文由 秩沅 原创 &#x1f468;‍&#x1f4bb; 收录于专栏&#xff1a;uni…

Pygame基础10-物理模拟

PyMunk PyMunk是一个模拟物理的库。 注意&#xff0c;PyMunk只是进行物理模拟&#xff0c;不包含可视化的功能。如果需要可视化&#xff0c;可使用pygame等库。 可用pip安装pymunk pip install pymunk pymunk中的概念&#xff1a; space&#xff1a; 物理空间。 包含gravity 模…

AJAX —— 学习(一)

目录 一、原生 AJAX &#xff08;一&#xff09;AJAX 介绍 1.理解 2.作用 3.最大的优势 4.应用例子 &#xff08;二&#xff09;XML 介绍 1.理解 2.作用 &#xff08;三&#xff09;AJAX 的特点 1.优点 2.缺点 二、HTTP 协议 &#xff08;一&#xff09;HTTP 介…

C语言中的结构体:揭秘数据的魔法盒

前言 在C语言的广阔天地中&#xff0c;结构体无疑是一颗璀璨的明珠。它就像是一个魔法盒&#xff0c;能够容纳各种不同类型的数据&#xff0c;并按我们的意愿进行组合和排列。那么&#xff0c;这个魔法盒究竟有何神奇之处呢&#xff1f;让我们一探究竟。 一、结构体的诞生&…

Java学习14(异常)

异常 概述 程序运行过程出错的情况就是异常。Java提供了异常处理机制&#xff0c;出现不正常情况的时候&#xff0c;就会把异常信息打印到控制台&#xff0c;供程序员参考修改。 这是Java打印的异常信息&#xff0c;这个信息是JVM打印的。 异常的作用&#xff1a; 增强程序的健…

可以写网易云的了!

你好&#xff0c;我是云桃桃。 一个希望帮助更多朋友快速入门 WEB 前端的程序媛。 1枚程序媛&#xff0c;大专生&#xff0c;2年时间从1800到月入过万&#xff0c;工作5年买房。 分享成长心得。 259篇原创内容-gzh 后台回复“前端工具”可获取开发工具&#xff0c;持续更新中…

设计模式——原型模式05

原型模式核心复制&#xff0c;每次new出来的对象完全不一样&#xff0c;实现对象之间的隔离。 学习前最好先掌握jAVA值传递和深浅拷贝 设计模式&#xff0c;一定要敲代码理解 浅拷贝 克隆出对象&#xff0c;其中两者的引用类型属性是同一个对象。 对象信息 /*** author ggb…

常用的AI绘画自动生成器介绍

AI绘画自动生成器是一种利用人工智能技术生成图像的工具。它可以根据用户输入的文本描述自动生成相应的图像。目前,有几种流行的AI绘画自动生成器,包括: 1. **DALL-E 2** DALL-E 2是由OpenAI开发的AI绘画生成器,它可以根据用户输入的自然语言描述生成高质量的图像。DALL-E 2使…

【Linux】Linux进程学习(基本认知)

&#x1f525;博客主页&#xff1a; 小羊失眠啦. &#x1f3a5;系列专栏&#xff1a;《C语言》 《数据结构》 《C》 《Linux》 《Cpolar》 ❤️感谢大家点赞&#x1f44d;收藏⭐评论✍️ 文章目录 前言一、冯诺依曼体系二、系统管理三、进程理解3.1 代码与数据3.2 进程控制块 四…

jvm总结学习

四种加载器 1.启动类加载器 2.拓展类加载器 3.应用程序加载器 4.自定义加载器 沙箱机制 就是为了保证安全&#xff0c;增加的一些权限。 native方法区&#xff08;静态变量&#xff0c;常量&#xff0c;类信息&#xff08;构造方法&#xff0c;接口定义&#xff09;&…

突破!AI机器人拥有嗅觉!仿生嗅觉芯片研究登上Nature子刊

我们一直梦想着让AI与人类能够更加相似&#xff0c;赋予它们视觉与听觉。而让机器人拥有嗅觉一直以来面临着巨大的困难。 香港科技大学范志勇教授领导的研究团队凭借最新研发的仿生嗅觉芯片&#xff08;BOC&#xff09;在这一领域取得了重大突破。该研究成果目前已被发表到IF …

github生成新的SSH密钥

首先是参考官方文档 生成新的 SSH 密钥并将其添加到 ssh-agent述 当你在创建SSH密钥时遇到提示&#xff1a; Enter file in which to save the key (/c/Users/YOU/.ssh/id_ALGORITHM):这一步是让你选择保存生成的SSH密钥对的文件名和位置。如果你直接按回车键&#xff08;[Pr…

Qt+OpenGL_part1

OpenGL&#xff0c;Qt实现&#xff1a;1入门篇(已更完)_哔哩哔哩_bilibili OpenGL3.3以上是现代模式&#xff08;可编程管线&#xff09;&#xff1a; 状态机 状态设置函数&#xff08;State-changing Function) 状态应用函数 &#xff08;State-using Function) OpenGL的状态…

Centos7安装minio

下载 官网&#xff1a;MinIO | Code and downloads to create high performance object storage 网盘&#xff1a;链接&#xff1a;https://pan.baidu.com/s/1XTu4WyHrBQbetu5g4oKvAw?pwd7b22 提取码&#xff1a;7b22 将下载的安装文件上传到服务器/opt目录下 安装前准备…

获取天翼网关TEWA-708E超级管理员密码

Download RouterPassView 参考&#xff1a;破解光猫超级管理员密码&#xff08;网关型号&#xff1a;TEWA-708E&#xff09; - 知乎