c++之stack(栈)与queue(队列)的使用与简单实现

文章目录

  • 说明
  • stack与 queue
    • push
    • pop()删除
    • top()查头
    • queue的back()查尾
    • size()长度
    • empty()判空

说明

栈的简单实现很简单,但是有一个强制要求,传过来的类模版中,必须包含尾插头删等操作
队列同理
他们两个叫空间适配器,不同于其他stl的类

stack与 queue

自身的拷贝构造是调用传过来的类,析构同理,什么都是用别人的,自己只是一个封装效果一样,封装别人
类模版:
这里的conatiner是要传过来的类

template<class T,class Container= deque <T>>
class stack
{private:
	Container _con;};

template<class T, class Container = deque <T>>
class queue
{private:
	Container _con;};

push

使用:

int main()
{
	stack<int> d;
	queue<int> s;
	d.push(1);
	d.push(2);
	d.push(3);
	d.push(4);
	d.push(5);
	s.push(1);
	s.push(2);
	s.push(3);
	s.push(4);
	s.push(5);
	while (!d.empty())
	{
		cout << d.top()<<" ";
		d.pop();
	}
	cout << endl;
	while (!s.empty())
	{
		cout << s.front() << " ";
		s.pop();
	}
	return 0;
}

简单实现:
相当于富二代 用别人的 自己没有

void push(const T& x)
{
	_con.push_back(x);
}

pop()删除

实现:

void pop()
{
	_con.pop();
}

top()查头

const T& top()
{
	return _con.back();
}

queue的back()查尾

const T& back()
{
	return _con.back();
}

size()长度

size_t size()
{
	return _con.size();
}

empty()判空

bool empty()
{
	_con.empty();
}

http://www.niftyadmin.cn/n/5406683.html

相关文章

2024年,入职大学老师,全新的开始

求职之路偏坎坷&#xff0c;也是自己“一意孤行”&#xff0c;立志要当一名老师&#xff0c;第一天上课三节课六个小时&#xff0c;一趟下来腰疼。 看到和自己年龄相仿的同学很亲切&#xff0c;上课语速还是因为紧张激动而过快&#xff0c;应该要适当调整一下。 任职的这所这学…

[动态规划]---part1

前言 作者&#xff1a;小蜗牛向前冲 专栏&#xff1a;小蜗牛算法之路 专栏介绍&#xff1a;"蜗牛之道&#xff0c;攀登大厂高峰&#xff0c;让我们携手学习算法。在这个专栏中&#xff0c;将涵盖动态规划、贪心算法、回溯等高阶技巧&#xff0c;不定期为你奉上基础数据结构…

Linux学习-指针

目录 意义&#xff1a; 地址&#xff1a; 指针&#xff1a; 指针变量&#xff1a; 运算符&#xff1a; 指针变量的定义&#xff1a; 常见的指针操作 指针的算数运算 指针作为函数参数 做题总结 意义&#xff1a; 代码更加简单高效&#xff1b; 指针可以直接访问内存…

Boto3 API

boto3有两种不同的方式访问AmazonS3 Client Method import boto3s3_client boto3.client(s3)objects s3_client.list_objects(bucket-name)for object in objects[Contents]:print(object[Key])Resource Method import boto3s3_resource boto3.resource(s3)for object in…

蓝桥杯:单词分析

题目 题目描述 小蓝给学生们组织了一场考试&#xff0c;卷面总分为 100 分&#xff0c;每个学生的得分都是一个 0 到 100 的整数。 如果得分至少是 60 分&#xff0c;则称为及格。如果得分至少为 85 分&#xff0c;则称为优秀。 请计算及格率和优秀率&#xff0c;用百分数表…

Siamrpn++论文中文翻译(详细!)

SiamRPN: Evolution of Siamese Visual Tracking with Very Deep Networks SiamRPN&#xff1a;具有非常深度网络的Siamese视觉跟踪的进化 【siamrpn论文地址】 https://arxiv.org/abs/1812.11703 摘要 基于Siamese网络的跟踪器将跟踪表示为目标模板和搜索区域之间的卷积特征…

【Python】FastAPI 项目创建 与 Docker 部署

文章目录 前言&需求描述1. 本地FastAPI1.1 Python 环境准备1.2 本地 Pycharm 创建FastAPI项目 2. Python FastAPI 部署2.1 服务器配置Python环境2.2.1 下载与配置Git、Pyenv等工具2.2.2 下载与配置Python 2.2 FastAPI 打包成镜像2.2.1 项目准备所需环境文件2.2.2 编写Docke…

Vue3:用vite创建Vue3项目

一、简介 vite是新一代前端构建工具&#xff0c;官网地址&#xff1a;https://vitejs.cn vite的优势如下&#xff1a; 轻量快速的热重载&#xff08;HMR&#xff09;&#xff0c;能实现极速的服务启动。对 TypeScript、JSX、CSS 等支持开箱即用。真正的按需编译&#xff0c;不…