首页 > 编程语言 >C++学习:stack queue模拟

C++学习:stack queue模拟

时间:2024-09-29 18:19:38浏览次数:11  
标签:return back C++ queue pop const size stack con

stack和queue可以复用其他容器的函数如deque vector

这两个是空间适配器,所以都没有迭代器

一:stack模拟

namespace bit
{

	template<class T, class Container = deque<T>>
	class stack
	{
	public:
		void push(const T& x)
		{
			_con.push_back(x);
		}

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

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

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

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

	private:
		Container _con;
	};
}

二:queue模拟

namespace bit
{
	template<class T, class Container = deque<T>>
	class queue
	{
	public:
		void push(const T& x)
		{
			_con.push_back(x);
		}

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

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

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

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

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

	private:
		Container _con;
	};
};

感谢你看到这大家共同进步!

标签:return,back,C++,queue,pop,const,size,stack,con
From: https://blog.csdn.net/lxy2977262881/article/details/142466932

相关文章

  • C++学习:模版进阶:非类型模板参数 特化 分离编译
    目录一:非类型模版参数二:模版特化三:函数模版特化四:类模版特化一:全特化(将模板参数列表中所有的参数都确定化)二:偏特化(部分特化或更进一步限制)五:模版分离编译一:非类型模版参数非类型模版参数是在模版参数列表中,跟在模版参数后面的,就是用常量当参数(下面的n就是)templa......
  • c++线程--快速上手
    线程创建头文件#includethread是在C++11标准中引入的。C++11标准引入了对多线程编程的标准化支持,其中包括了线程的创建、管理和同步机制。头文件提供了基本的线程支持库,允许开发者直接使用c++线程进行并行编程,而无需依赖操作系统特定的API#include<iostream>#include......
  • 基于C++11的数据库连接池环境配置
    欢迎访问我的另一个博客:https://xingzhu.top/ubuntu安装python2由于接下来要使用python,所以先安装python#安装python2.7.18即可#python3不行,版本过高,会报错sudoaptinstallpython2python2--version安装完成后我们可以使用如下命令来检查目前可用的Pyt......
  • C++的并发编程历史
    多线程环境并非所有的语言都提供了多线程的环境。即便是C++语言,直到C++11标准之前,也是没有多线程支持的。在这种情况下,Linux/Unix平台下的开发者通常会使用POSIXThreads,Windows上的开发者也会有相应的接口。但很明显,这些API都只针对特定的操作系统平台,可移植性较差。如果要同......
  • 南沙C++信奥赛陈老师解一本通题 1973:【16NOIP普及组】买铅笔
    ​ 【题目描述】P老师需要去商店买n支铅笔作为小朋友们参加NOIP的礼物。她发现商店一共有3种包装的铅笔,不同包装内的铅笔数量有可能不同,价格也有可能不同。为了公平起见,P老师决定只买同一种包装的铅笔。商店不允许将铅笔的包装拆开,因此P老师可能需要购买超过n支铅笔才够给小......
  • C++游戏开发:构建高性能、沉浸式游戏体验的关键
    引言C++作为游戏开发的核心语言,凭借其卓越的性能和灵活性,已成为许多现代游戏引擎和开发项目的首选。在游戏开发中,C++不仅可以实现复杂的游戏逻辑,还能有效管理资源和优化性能。本文将深入探讨C++在游戏开发中的应用,结合先进的技术、设计模式和最佳实践,帮助开发者提升游戏开发的......
  • 南沙C++信奥赛老师解一本通题1217:棋盘问题
    ​ 【题目描述】在一个给定形状的棋盘(形状可能是不规则的)上面摆放棋子,棋子没有区别。要求摆放时任意的两个棋子不能放在棋盘中的同一行或者同一列,请编程求解对于给定形状和大小的棋盘,摆放 kk 个棋子的所有可行的摆放方案 CC。【输入】输入含有多组测试数据。每组数据......
  • C++ const_cast 和重载
    在4.11.3节(第145页)中我们说过,const_cast在重载函数的情景中最有用。举个例子,回忆6.3.2节(第201页)的shorterstring函数://比较两个string对象的长度,返回较短的那个引用conststring&shorterString(conststring&sl,conststring&s2){returnsl.size()<=s2.size()?......
  • C++中使用Qt实现JSON序列化与反序列化
    //File:JsonSerializer//Author:[email protected]//Creation:2024/09/29#ifndefJSON_SERIALIZER_H#defineJSON_SERIALIZER_H#include<QJsonDocument>#include<QJsonObject>#include<QJsonArray>#include<QJsonValue>#includ......
  • 【C++】继承(下)
    个人主页~继承(上)~继承四、派生类的默认成员函数五、继承与友元六、继承与静态成员七、复杂的菱形继承以及菱形虚拟继承1、菱形继承2、菱形虚拟继承八、继承的总结与反思继承和组合四、派生类的默认成员函数派生类的构造函数必须调用基类的构造函数初始化基类的......