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

news/2024/11/29 9:49:28/

栈的底层与使用

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

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

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

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

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

底层实现:

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

底层实现:

	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;};

优先级队列


http://www.ppmy.cn/news/1446201.html

相关文章

如何从架构层面降低公有云多可用区同时故障的概率

阿里云和腾讯云都曾出现过因一个组件故障而导致所有可用区同时瘫痪的情况。本文将探讨如何从架构设计的角度减小故障域&#xff0c;在故障发生时最小化业务损失&#xff0c;并以 Sealos 的稳定性实践为例&#xff0c;分享经验教训。 抛弃主从&#xff0c;拥抱点对点架构 从腾…

AI智能对话系统源码 写文章+聊天+写小说 功能强大 带完整的安装代码包以及搭建教程

随着大数据、云计算和深度学习等技术的不断进步&#xff0c;人工智能逐渐渗透到我们生活的方方面面。智能对话系统作为人工智能的一个重要应用方向&#xff0c;其发展前景广阔。为了满足市场对于高效、便捷的智能对话系统的需求&#xff0c;小编给大家分享一款款功能强大的AI智…

k8s复制pod里的文件到宿主机

要在Kubernetes中复制Pod里的文件到宿主机&#xff0c;可以使用kubectl cp命令。以下是一个基本的命令格式和示例&#xff1a; 命令格式: kubectl cp <namespace>/<pod-name>:/path/to/file/in/pod /path/to/target/location/on/host -c <container-name> …

jquery的基本使用和优缺点

jQuery是一个快速、简洁的JavaScript库&#xff0c;它简化了HTML文档遍历、事件处理、动画和Ajax交互。jQuery的目标是“Write less, do more”&#xff0c;即用更少的代码实现更多的功能。官网&#xff1a;https://api.jquery.com/ 基本使用 下面举一个简单的例子来说明jQue…

k8s集群Grafana精选dashboard页面

文章目录 参考文档 Grafana自选模板推荐模板&#xff1a;13332、13824、14518Grafana默认配置我们选择 Node Exporter/Nodes 的 Dashboard 进去&#xff1a;点击 Kubernetes/Networking/Cluster 进去使用模板查看结果 Grafana接入Prometheus数据Grafana添加监控模板导入 1860_r…

力扣---二叉树的右视图

给定一个二叉树的 根节点 root&#xff0c;想象自己站在它的右侧&#xff0c;按照从顶部到底部的顺序&#xff0c;返回从右侧所能看到的节点值。 示例 1: 输入: [1,2,3,null,5,null,4] 输出: [1,3,4]示例 2: 输入: [1,null,3] 输出: [1,3]示例 3: 输入: [] 输出: []实现方法&…

代码随想录算法训练营第二十六天||39. 组合总和、40.组合总和II、131.分割回文串

文章目录 一、39. 组合总和 思路 二、40.组合总和II 思路 三、131.分割回文串 思路 一、39. 组合总和 给定一个无重复元素的数组 candidates 和一个目标数 target &#xff0c;找出 candidates 中所有可以使数字和为 target 的组合。 candidates 中的数字可以无限制重复被选取…

Java中的public,private,protect,默认这几个访问修饰符的范围和概念

在Java中&#xff0c;public、private和protected是访问修饰符&#xff0c;它们决定了类、方法或变量的访问级别。这些访问修饰符有助于实现封装&#xff0c;这是面向对象编程的四大基本特性之一。 public&#xff1a;这是最高级别的访问修饰符。被public修饰的类、方法或变量…