C++——数据结构stack,queue,priority_queue

栈的底层与使用

1.堆栈是计算机科学中的一种抽象数据类型,只允许在有序的线性数据集合的一端(称为堆栈顶端,top)进行插入数据(PUSH)和删除数据(POP)的运算。

2.特点:stack是一种容器适配器 支持后进先出 无迭代器

3.stack的底层容器需要支持如下操作:

  1. empty(判空)
  2. size(返回有效数据个数)
  3. push(队尾插入)
  4. pop (队尾删除)
  5. top(返回对头元素)

4.stack的底层可以是vector , list , deque(双端队列),默然情况是deque

底层实现:

cpp 复制代码
namespace bit
{
	template< typename T, typename Container = deque<T> >// 适配器模式 + 类模版
	class stack
	{
	public:
		void push(const T& x)
		{
			_com.push_back(x);
		}
		bool empty()
		{
			return _com.empty();
		}
		void pop()
		{
			_com.pop_back();
		}
		size_t size()
		{
			return _com.size();
		}
		T& top()
		{
			return _com.back();
		}
		
	private:
		Container _com;
	};
}

队列的底层与使用

1.队列是一种容器适配器,专门适用于先进先出操作,从一段提取元素,一端插入元素

2.队列的底层容器需要支持以下操作

  1. size
  2. empty
  3. push
  4. pop
  5. front
  6. back

3.queue的底层可以是list , deque ,默然情况是deque

底层实现:

cpp 复制代码
	template< typename T, typename Container = deque<T> >
	class queue
	{
	public:
		void push(const T& x)
		{
			_com.push_back(x);
		}
		bool empty()
		{
			return _com.empty();
		}
		void pop()
		{
			_com.pop_back();
		}
		size_t size()
		{
			return _com.size();
		}
		T& top()
		{
			return _com.back();
		}
		
	private:
		Container _com;
	};

优先级队列

相关推荐
int型码农几秒前
数据结构第八章(一) 插入排序
c语言·数据结构·算法·排序算法·希尔排序
利刃大大7 分钟前
【在线五子棋对战】二、websocket && 服务器搭建
服务器·c++·websocket·网络协议·项目
喜欢吃燃面15 分钟前
C++刷题:日期模拟(1)
c++·学习·算法
SHERlocked9318 分钟前
CPP 从 0 到 1 完成一个支持 future/promise 的 Windows 异步串口通信库
c++·算法·promise
怀旧,23 分钟前
【数据结构】6. 时间与空间复杂度
java·数据结构·算法
积极向上的向日葵36 分钟前
有效的括号题解
数据结构·算法·
Java 技术轻分享1 小时前
《树数据结构解析:核心概念、类型特性、应用场景及选择策略》
数据结构·算法·二叉树··都差速
虚拟之1 小时前
36、stringstream
c++
我很好我还能学1 小时前
【面试篇 9】c++生成可执行文件的四个步骤、悬挂指针、define和const区别、c++定义和声明、将引用作为返回值的好处、类的四个缺省函数
开发语言·c++
蓝婷儿2 小时前
6个月Python学习计划 Day 16 - 面向对象编程(OOP)基础
开发语言·python·学习