C++(9.25)

stack:

#include <iostream>
using namespace std;
class my_stack {
private:int* data;       // 动态数组,用于存储栈的元素int len;         // 当前栈中元素的个数int size;    // 栈的最大容量public:// 默认构造函数,初始化容量为 10my_stack(int cap = 10) : len(0), size(cap) {data = new int[size];}// 析构函数,释放动态分配的内存~my_stack() {delete[] data;}// 复制构造函数my_stack(const my_stack& other) : len(other.len), size(other.size) {data = new int[size];for (int i = 0; i < len; ++i) {data[i] = other.data[i];}}// 赋值运算符重载my_stack& operator=(const my_stack& other) {if (this != &other) {delete[] data;len = other.len;size = other.size;data = new int[size];for (int i = 0; i < len; ++i) {data[i] = other.data[i];}}return *this;}// 返回栈中元素的个数int size() const {return len;}// 判断栈是否为空bool empty() const {return len == 0;}// 返回栈顶元素int& top() {if (empty()) {return -1;}return data[len - 1];}// 向栈顶插入元素void push(int value) {if (len == size) {return -1;}data[len++] = value;}// 删除栈顶元素void pop() {if (empty()) {return -1;}len--;}// 交换两个栈的内容void swap(my_stack& other) {swap(data, other.data);swap(len, other.len);swap(size, other.size);}
};int main() {my_stack s1(5);  // 初始化栈容量为 5s1.push(10);s1.push(20);s1.push(30);cout << "容量: " << s1.size() << endl;cout << "栈顶: " << s1.top() << endl;s1.pop();cout << "删除后,栈顶元素 " << s1.top() << endl;my_stack s2(5);s2.push(100);s2.push(200);cout << "交换后" << endl;s1.swap(s2);cout << "栈顶: " << s1.top() << endl;cout << "交换后: " << s2.top() << endl;return 0;
}

queue:

#include <iostream>
#include <stdexcept>
using namespace std;
class my_queue {
private:int* data;      // int len;        // 当前队列中的元素个数int size;       // 队列的最大容量int front;   // 队首元素的索引int back;    // 队尾元素的索引public:// 初始化容量为 10my_queue(int cap = 10) : len(0), size(cap), front(0), back(-1) {data = new int[size];}// 析构函数,释放动态分配的内存~my_queue() {delete[] data;}// 复制构造函数my_queue(const my_queue& other) : len(other.len), size(other.size), front(other.front), back(other.back) {data = new int[size];for (int i = 0; i < len; i++) {data[i] = other.data[(front + i) % size];}}// 赋值运算符重载my_queue& operator=(const my_queue& other) {if (this != &other) {delete[] data;len = other.len;size = other.size;front = other.front;back = other.back;data = new int[size];for (int i = 0; i < len; i++) {data[i] = other.data[(front + i) % size];}}return *this;}// 返回队列中元素的个数int the_size() const {return len;}// 判断队列是否为空bool empty() const {return len == 0;}// 返回队首元素int& front() {if (empty()) {throw out_of_range("queue is empty");}return data[front];}// 返回队尾元素int& back() {if (empty()) {throw out_of_range("queue is empty");}return data[back];}// 向队列尾部添加元素void push(int value) {if (len == size) {throw overflow_error("queue is full");}back = (back + 1) % size;data[back] = value;++len;}// 从队列头部删除元素void pop() {if (empty()) {throw out_of_range("Queue is empty");}front = (front + 1) % size;len--;}// 交换两个队列的内容void swap(my_queue& other) {swap(data, other.data);swap(len, other.len);swap(size, other.size);swap(front, other.fron);swap(back, other.back);}
};int main() {my_queue q1(5);  // 初始化队列容量为 5q1.push(10);q1.push(20);q1.push(30);cout << q1.the_size() << endl;cout  << q1.front() << endl;cout  << q1.back() << endl;q1.pop();cout q1.front() << endl;my_queue q2(5);q2.push(100);q2.push(200);cout  << endl;q1.swap(q2);cout << q1.front() << endl;cout << q2.front() << endl;return 0;
}

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/1548287.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

解决input密码框选择浏览器提供的“已保存账户”密码,白色背景色无法去除问题

在新版浏览器&#xff08;我用的edge&#xff09;中&#xff0c;点击聚焦input密码框&#xff0c;会弹出浏览器提供“已保存账户”快捷选中密码&#xff0c;选中之后&#xff0c;input框会变成白色背景。如果你整体背景色是深色的&#xff0c;就会显得突兀。设置input的backgro…

产品推介——SOP4 随机相位可控硅光耦KLM305X

产品描述Product Description KLM305X 系列由一个砷化镓红外发光二极管和一个单晶硅芯片的随机相位光电双向晶闸管组成的可控硅光电耦合器&#xff0c;它被设计用于连接电子控制和功率双向可控硅开关&#xff0c;以控制115至240VAC工作电压下的电阻和感应负载。 功能图Functi…

C++进阶—>这3个问题难道搞不懂多态???

文章目录 &#x1f6a9;前言1、它是什么&#xff1f;2、怎样实现它&#xff1f;&#xff1f;2.1、虚函数是个什么来头&#xff1f;✍2.2、虚函数的重写/覆盖特殊点&#xff01;&#x1f440;2.3、在了解多态的必要条件以及虚函数后&#xff0c;来看下如何编写吧&#x1f440;&a…

【计算机方向】中科院二区TOP神刊!国人发文友好,刊文量高,录用容易!

期刊解析 &#x1f6a9;本 期 期 刊 看 点 &#x1f6a9; 中科院二区TOP期刊&#xff01; 审稿友好&#xff0c;IF4.8&#xff0c;自引率6.2% 最新年度发文530。 今天小编带来计算机领域SCI快刊的解读&#xff01; 如有相关领域作者有意投稿&#xff0c;可作为重点关注&am…

SpringBoot日志集成-LogBack

Log4J&#xff1a;最早的Java日志框架之一&#xff0c;由Apache基金会发起&#xff0c;提供灵活而强大的日志记录机制JDK自带的日志框架&#xff1a;java.util.logging.Logg&#xff0c;是JDK1.4之后提供的日志API&#xff0c;已淘汰logback&#xff1a; logback一个开源的日志…

Java ERP管理系统源码解析:微服务架构实践Spring Cloud Alibaba与Spring Boot

在当今数字化浪潮的推动下&#xff0c;企业对于高效、稳定且易于扩展的管理系统需求日益增长。为了满足这一需求&#xff0c;我们精心打造了一款基于Java技术的鸿鹄ERP&#xff08;Enterprise Resource Planning&#xff09;管理系统。该系统充分利用了Spring Cloud Alibaba、S…

猫头虎 分享已解决Bug: || Module not found: Can‘t resolve ‘react‘ 解决方案

&#x1f42f;猫头虎 分享已解决Bug&#xff1a; || Module not found: Cant resolve react 解决方案 摘要: 今天猫头虎带大家解决一个常见的前端问题&#xff0c;尤其是在 React 项目中&#xff0c;很多开发者在安装依赖包时&#xff0c;遇到过 Module not found: Cant resol…

2024年9月第4周AI资讯

阅读时间&#xff1a;3-4min 更新时间&#xff1a;2024.9.23-2024.9.27 目录 o1 处于OpenAI的AGI5阶段的第2阶段 微软使用核燃料推动AI发展 阿里巴巴和英伟达在自动驾驶方向合作 Meta 推出 AR xAI 眼镜、新型号 o1 处于OpenAI的AGI5阶段的第2阶段 概要 OpenAI 首席执行官 …

智能抠图怎么操作?4款不动手自动抠图的智能神器分享

对于资深的图片设计师们来说&#xff0c;抠图是他们必备的基础技能&#xff0c;没几下功夫就能在PS中操作完成。 然而对于小编这种修图小白来讲&#xff0c;拥有一款傻瓜式智能抠图免费软件&#xff0c;才是硬道理&#xff01; 小到简单的图形文字、大到飞扬细碎的毛发&#…

MySQL第11讲--多表查询的介绍

文章目录 前言多表关系多表查询概述多表查询的分类连接查询内链接外链接自连接 联合查询子查询标量子查询列子查询行子查询表子查询 前言 在MySQL第10讲–约束的介绍中讲了数据库的几种约束条件&#xff1a;非空约束、唯一约束、主键约束、外键约束、检查约束、默认约束。下图对…

Splashtop 加入 Microsoft 智能安全协会

2024年9月25日 美国加利福尼亚州库比蒂诺 Splashtop Inc . 今天宣布已正式加入 Microsoft 智能安全协会&#xff08;MISA&#xff09;。MISA 由独立软件供应商&#xff08;ISV&#xff09;和托管安全服务提供商&#xff08;MISA&#xff09;组成&#xff0c;他们将其解决方案与…

渗透测试-文件上传绕过思路

文件上传绕过思路 引言 分享一些文件上传绕过的思路&#xff0c;下文内容多包含实战图片&#xff0c;所以打码会非常严重&#xff0c;可多看文字表达&#xff1b;本文仅用于交流学习&#xff0c; 由于传播、利用此文所提供的信息而造成的任何直接或者间接的后果及损失&#x…

深度解析APP软件开发:构建卷轴式分销系统的实践探索

在移动互联网的浪潮中&#xff0c;APP软件的开发与应用不断推动着商业模式的创新与发展。其中&#xff0c;卷轴模式分销系统作为一种新兴的营销手段&#xff0c;正逐渐受到市场的青睐。作为程序员&#xff0c;深入探索并实践这一模式的系统开发&#xff0c;不仅是对技术能力的挑…

C++ STL初阶(14): map和set

1.关联式容器与键值对 前导文章&#xff1a;C 二叉树进阶-CSDN博客 之前我们学习的线性的容器&#xff0c;如&#xff1a;vector deque list等都叫作序列式容器 与之对立的概念是关联式容器 关联式容器 也是用来存储数据的&#xff0c;与序列式容器不同的是&#xff0c;其 里面…

【Linux】图解详谈HTTPS的安全传输

文章目录 1.前置知识2.只使用对称加密3.只使用非对称加密 因为私钥加密只能公钥解开&#xff0c;公钥加密只能私钥解开4.双方都是使用非对称加密5.非对称加密 对称加密6.非对称加密对称加密CA认证&#xff08;一&#xff09;CA认证&#xff08;二&#xff09;https &#xff0…

Ks渲染做汽车动画吗?汽车本地渲染与云渲染成本分析

Keyshot是一款强大的实时光线追踪和全域光渲染软件&#xff0c;它确实可以用于制作汽车动画&#xff0c;包括汽车模型的渲染和动画展示。Keyshot的动画功能允许用户创建相机移动、物体变化等动态效果&#xff0c;非常适合用于汽车动画的制作。 至于汽车动画的渲染成本&#xff…

手机如何五开玩梦幻西游端游?用GameViewer远程手机免费畅玩梦幻西游

用手机就能免费玩梦幻西游端游&#xff0c;还可以随时查看挂机进度&#xff01; 想要实现这一点&#xff0c;就用网易GameViewer远程&#xff0c;而且不光手机可以玩梦幻西游端游&#xff0c;平板也能免费玩&#xff0c;并为你实现五开玩梦幻西游端游。 那么&#xff0c;通过Ga…

[001-03-007].第28节:SpringBoot整合Redis:

6.1.Redis的介绍&#xff1a; 1.Redis 是一个开源&#xff08;BSD许可&#xff09;的&#xff0c;内存中的数据结构存储系统&#xff0c;它可以用作数据库、缓存和消息中间件。2.它支持多种类型的数据结构&#xff0c;如 字符串&#xff08;strings&#xff09;&#xff0c; 散…

Python制作进度条,18种方式全网最全!(不全去你家扫厕所!)

想象一下&#xff0c;你的程序在执行复杂任务时&#xff0c;不再是冷冰冰的等待光标&#xff0c;而是伴随着色彩斑斓、动态变化的进度条&#xff0c;不仅让等待变得有趣&#xff0c;更让用户对你的作品刮目相看。从基础的文本进度条到高级的图形界面进度条&#xff0c;从简单的…

Excel FIND函数用法详解,附FIND函数提取文本示例

大家好&#xff0c;这里是效率办公指南&#xff01; &#x1f50e; 在处理文本数据时&#xff0c;我们经常需要在字符串中查找特定词语或字符的位置。Excel中的FIND函数是一个非常实用的工具&#xff0c;可以帮助我们在文本字符串中查找子字符串的位置。今天&#xff0c;我们将…