当前位置: 首页 > article >正文

C++模拟实现queue

C++模拟实现queue

  • 1.queue的基本概念
  • 2.queue的基本框架
  • 3.size()成员函数
  • 4.empty()成员函数
  • 5.push()成员函数
  • 6.pop()成员函数
  • 7.front()成员函数
  • 8.back()成员函数
  • 9.完整代码

🌟🌟hello,各位读者大大们你们好呀🌟🌟
🚀🚀系列专栏:【C++的学习】
📝📝本篇内容:queue的基本概念;queue的基本框架;size()成员函数;empty()成员函数;push()成员函数;pop()成员函数;front()成员函数;back()成员函数;完整代码
⬆⬆⬆⬆上一篇:C++模拟实现stack
💖💖作者简介:轩情吖,请多多指教(> •̀֊•́ ) ̖́-

1.queue的基本概念

queue是一个容器适配器,它底层是修改其他容器的接口,形成另一种风貌。queue就是我们常说的数据结构队列,它具有先进先出的特性,我们可以只能对它的两端进行操作,是一个双向开口的数据结构,并且queue不允许遍历

2.queue的基本框架

#define _CRT_SECURE_NO_WARNINGS 1
#pragma once
#include <iostream>
#include <deque>
using namespace std;
namespace lnb
{
//既然是模拟实现,我们默认的Container也可以是list,可以更好的理解,deque是库中默认的
	template<class T, class Container = deque<T>>
	class stack
	{
	public:
	

	private:
		//修改其他容器的接口,形成另一种风貌:容器适配器
		Container _con;
	};
}

可以先去看一下list的模拟实现,这样就可以很好的理解后面的内容了

3.size()成员函数

	//有效元素个数
		size_t size()
		{
			return _con.size();
		}

直接使用其他容器的接口即可

4.empty()成员函数

		//判空
		bool empty()
		{
			return _con.empty();
		}

5.push()成员函数

		//入队
		void push(const T& val)
		{
			_con.push_back(val);
		}

6.pop()成员函数

		//出队
		void pop()
		{
			_con.pop_front();
		}

7.front()成员函数

		//队首元素
		T& front()
		{
			return _con.front();
		}

		//针对const对象
		const T& front()const
		{
			return _con.front();
		}

8.back()成员函数

		//队尾的元素
		T& back()
		{
			return _con.back();
		}
		
		//针对const对象
		const T& back()const
		{
			return _con.back();
		}

9.完整代码

#define _CRT_SECURE_NO_WARNINGS 1
#include <iostream>
#include <deque>
using namespace std;
namespace lnb
{
//既然是模拟实现,我们默认的Container也可以是list,可以更好的理解,deque是库中默认的
	template<class T,class Container=deque<T>>
	class queue
	{
	public:
		//有效元素个数
		size_t size()
		{
			return _con.size();
		}

		//判空
		bool empty()
		{
			return _con.empty();
		}

		//入队
		void push(const T& val)
		{
			_con.push_back(val);
		}

		//出队
		void pop()
		{
			_con.pop_front();
		}

		//队首元素
		T& front()
		{
			return _con.front();
		}

		//针对const对象
		const T& front()const
		{
			return _con.front();
		}

		//队尾的元素
		T& back()
		{
			return _con.back();
		}
		
		//针对const对象
		const T& back()const
		{
			return _con.back();
		}


	private:
		//修改其他容器的接口,形成另一种风貌:容器适配器
		Container _con;
	};


}

其实queue的模拟实现和stack一样简单,只需要调用别的容器的接口即可,压根没有难度~

🌸🌸C++模拟实现queue的知识大概就讲到这里啦,博主后续会继续更新更多C++的相关知识,干货满满,如果觉得博主写的还不错的话,希望各位小伙伴不要吝啬手中的三连哦!你们的支持是博主坚持创作的动力!💪💪


http://www.kler.cn/a/513412.html

相关文章:

  • 什么是软件架构
  • 通过学习更多样化的生成数据进行更广泛的数据分发来改进实例分割
  • 4.JoranConfigurator解析logbak.xml
  • 前沿技术趋势洞察与分析:探寻科技变革的多维密码
  • 【k8s面试题2025】1、练气期
  • 《自动驾驶与机器人中的SLAM技术》ch4:基于预积分和图优化的 GINS
  • 人工智能与量子计算:未来编程的碰撞与共鸣
  • 安装wxFormBuilder
  • Flutter调用HarmonyOS NEXT原生相机拍摄相册选择照片视频
  • 《Long Context Compression with Activation Beacon》笔记
  • mybatis(19/134)
  • 【HarmonyOS NEXT】华为分享-碰一碰开发分享
  • 初创企业或中小企业如何进行海外市场问卷调查?
  • HTML中的`<!DOCTYPE html>`是什么意思?
  • Java爬虫调用API时的异常处理策略
  • 算法---冒泡法
  • 推荐一个小而美的 Toast 插件 (一键复制使用)
  • Dart语言的学习路线
  • YOLOv10-1.1部分代码阅读笔记-dist.py
  • 61,【1】BUUCTF WEB BUU XSS COURSE 11
  • 大牙的2024年创作总结
  • 求解ssp 问题建模
  • 个人职业发展与AI赋能的前端开发
  • 交换机Console密码忘记无法登录设备怎么办?
  • ubuntu16.04 VSCode下cmake+clang+lldb调试c++
  • 线程池实现