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

C++QT day6

1> 将之前定义的栈类和队列类都实现成模板类

栈:

#include <iostream>
#define MAX 128
using namespace std;
template<typename T>
class Stack_s
{
private:T *p=new T[MAX];//栈的数组int top;//记录栈顶的变量
public://构造函数Stack_s(int t=-1){top=t;cout<<"无参构造函数"<<endl;}//析构函数~Stack_s(){cout<<"Stack::析构函数"<<endl;}//拷贝构造函数Stack_s(const Stack_s &other):p(new T(p)),top(other.top){cout<<"拷贝构造函数"<<endl;}//入栈int stack_push(T e);//出栈int stack_pop();//清空栈int stack_delete();//判空bool stack_empty();//判满bool stack_full();//获取栈顶元素int stack_gettop();//栈的大小void stack_getsize();void show(int i){cout<<p[i]<<" ";}
};
//入栈
template<typename T>
int Stack_s<T>::stack_push(T e)
{if(stack_full()){cout<<"入栈失败"<<endl;return -1;}top++;p[top]=e;cout<<"入栈成功"<<endl;return 0;
}
//出栈
template<typename T>
int Stack_s<T>::stack_pop()
{if(stack_empty()){cout<<"出栈失败"<<endl;return -1;}T e=p[top];top--;cout<<e<<" 出栈成功"<<endl;return 0;
}
//清空栈
template<typename T>
int Stack_s<T>::stack_delete()
{while(top!=-1){stack_pop();}delete [] p;p=nullptr;cout<<"清空栈成功"<<endl;return 0;
}
//判空
template<typename T>
bool Stack_s<T>::stack_empty()
{if(top==-1){cout<<"栈空"<<endl;return 1;}return 0;
}
//盘满
template<typename T>
bool Stack_s<T>::stack_full()
{if(top==MAX-1){cout<<"栈满了"<<endl;return 1;}return 0;return 0;
}
//获取栈顶元素
template<typename T>
int Stack_s<T>::stack_gettop()
{cout<<"栈顶元素是:"<<p[top]<<endl;return 0;
}
//栈的大小
template<typename T>
void Stack_s<T>::stack_getsize()
{cout<<"栈的大小为:"<<top+1<<endl;
}
int main()
{//实例一个string类型的栈Stack_s<string> s1;string e;int l;s1.stack_empty();cout<<"请输入要入栈的个数:";cin>>l;for(int i=0;i<l;i++){cout<<"请输入要入栈的元素:";cin>>e;s1.stack_push(e);}s1.stack_gettop();s1.stack_getsize();for(int i=0;i<l;i++){s1.show(i);}cout<<endl;s1.stack_delete();//实例一个char类型的栈Stack_s<char> s2;char e1;int l1;s1.stack_empty();cout<<"请输入要入栈的个数:";cin>>l1;for(int i=0;i<l1;i++){cout<<"请输入要入栈的元素:";cin>>e1;s2.stack_push(e1);}s2.stack_gettop();s2.stack_getsize();for(int i=0;i<l1;i++){s2.show(i);}cout<<endl;s2.stack_delete();return 0;
}

结果:

队列:

#include <iostream>
#define MAX 128
using namespace std;
template<typename T>
class Queue_q
{
private:T *p=new T[MAX];//队列的数组int tail;//记录队尾元素int head;//记录对头元素
public://构造函数Queue_q(int t=0){head=t;tail=t;cout<<"无参构造函数"<<endl;}//析构函数~Queue_q(){cout<<"Stack::析构函数"<<endl;}//拷贝构造函数Queue_q(const Queue_q &other):p(new T(p)),tail(other.tail),head(other.head){cout<<"拷贝构造函数"<<endl;}//入队int queue_push(T e);//出队int queue_pop();//清空队列int queue_delete();//判空bool queue_empty();//判满bool queue_full();//队列的大小void queue_getsize();void show(int i){cout<<p[i]<<" ";}
};
//入队
template<typename T>
int Queue_q<T>::queue_push(T e)
{if(queue_full()){cout<<"入队失败"<<endl;return -1;}p[tail]=e;tail=(tail+1)%MAX;cout<<"入队成功"<<endl;return 0;
}
//出队
template<typename T>
int Queue_q<T>::queue_pop()
{if(queue_empty()){cout<<"出队失败"<<endl;return -1;}T e=p[head];head=(head+1)%MAX;cout<<e<<" 出队成功"<<endl;return 0;
}
//清空队列
template<typename T>
int Queue_q<T>::queue_delete()
{while(head!=tail){queue_pop();}delete [] p;p=nullptr;cout<<"清空队列成功"<<endl;return 0;
}
//判空
template<typename T>
bool Queue_q<T>::queue_empty()
{if(head==tail){cout<<"队列空"<<endl;return 1;}return 0;
}
//判满
template<typename T>
bool Queue_q<T>::queue_full()
{if((tail+1)==0){cout<<"队列满了"<<endl;return 1;}return 0;
}
//队列的大小
template<typename T>
void Queue_q<T>::queue_getsize()
{int size;size=(tail-head+MAX)%MAX;cout<<"队的大小为:"<<size<<endl;
}
int main()
{//实例一个double类型的队列Queue_q<double> q1;double e;int s;q1.queue_empty();cout<<"请输入要入队的个数:";cin>>s;for(int i=0;i<s;i++){cout<<"请输入要入队的元素:";cin>>e;q1.queue_push(e);}q1.queue_getsize();for(int i=0;i<s;i++){q1.show(i);}cout<<endl;q1.queue_delete();//实例一个string类型的队列Queue_q<string> q2;string e1;int s2;q2.queue_empty();cout<<"请输入要入队的个数:";cin>>s2;for(int j=0;j<s2;j++){cout<<"请输入要入队的元素:";cin>>e1;q2.queue_push(e1);}q2.queue_getsize();for(int j=0;j<s2;j++){q2.show(j);}cout<<endl;q2.queue_delete();return 0;}

结果:

思维导图:

相关文章:

C++QT day6

1> 将之前定义的栈类和队列类都实现成模板类 栈&#xff1a; #include <iostream> #define MAX 128 using namespace std; template<typename T> class Stack_s { private:T *pnew T[MAX];//栈的数组int top;//记录栈顶的变量 public://构造函数Stack_s(int t…...

List与ArrayList

目录 一、List及其使用 1.1 List的概念 1.2 常见接口的介绍 1.3 List的使用 二、线性表和顺序表 2.1 线性表 2.2 顺序表 三、ArrayList介绍 四、ArrayList的使用 4.1 ArrayList构造 4.2 ArrayList的常用方法 4.3 ArrayList的遍历 4.4 ArrayList的扩容机制 五、ArrayList的具…...

【C++】特殊类的设计

文章目录 1. 设计一个类, 不能被拷贝2. 设计一个类, 不能被继承3. 设计一个类, 只能在堆上创建对象3. 设计一个类, 只能在栈上创建对象4. 创建一个类, 只能创建一个对象(单例模式)饿汉模式懒汉模式 1. 设计一个类, 不能被拷贝 &#x1f495; C98方式&#xff1a; 在C11之前&a…...

机器学习:PCA(Principal Component Analysis主成分)降维

参考&#xff1a;PCA降维原理 操作步骤与优缺点_TranSad的博客-CSDN博客 PCA降维算法_偶尔努力翻身的咸鱼的博客-CSDN博客 需要提前了解的数学知识&#xff1a; 一、PCA的主要思想 PCA&#xff0c;即主成分分析方法&#xff0c;是一种使用最广泛的数据降维算法。PCA的主要思想…...

linux服务器slab缓存回收方案设计

背景 自己写的回收slab内存ko,insmod报错“shrink_slab:unknown symbol _x86_indirect_thunk_rax(err 0)””; 分析 1.名词解释 在 x86 架构中,函数调用通常使用 call 指令来直接跳转到目标函数的地址。但是,当需要通过函数指针或动态链接调用函数时,就需要使用__x86_…...

Apache Spark 的基本概念

Apache Spark 是一种快速、可扩展、通用的数据处理引擎。它是一种基于内存的计算框架&#xff0c;支持分布式数据处理、机器学习、图形计算等多种计算任务。与传统的 Hadoop MapReduce 相比&#xff0c;Spark 具有更高的性能和更广泛的应用场景。 Spark 中的基本概念包括&…...

通讯协议介绍CoAP 协议解析

目录 1 通讯协议 2 TCP/IP 网络模型 2.1 TCP协议 2.1.1 TCP 连接过程 2.1.2 TCP 断开连接 2.1.3 TCP协议特点 2.2 UDP协议 2.2.1 UDP 协议特点 3 应用层协议简介 3.1 HTTP 协议 3.2 CoAP 协议 3.3 MQTT 协议 4 CoAP 协议详解 4.1 REST 风格 4.2 CoAP 首部分析 4…...

React 开发一个移动端项目(2)

配置基础路由 目标&#xff1a;配置登录页面的路由并显示在页面中 步骤&#xff1a; 安装路由&#xff1a; yarn add react-router-dom5.3.0 5 和 6 两个版本对组件类型的兼容性和函数组件支持有所改变&#xff0c;在这里使用的是 5。 和路由的类型声明文件 yarn add types…...

51单片机 点阵矩阵 坤坤代码

真正的黑子 #include <REGX52.H>void Delay(unsigned int xms); void _74HC595_WriteByte(unsigned char byte); void LED(unsigned char Y,DATA); void LED_Init();sbit RCKP3^5; //RCLK sbit SCKP3^6; //SRCL sbit SERP3^4; //SER //坤坤矩阵 unsigned char code D…...

Android13-图片视频选择器

在compileSDK 33 时&#xff0c;谷歌在安卓新增了 图片选择器 功能&#xff0c;支持单选、多选、选图片、视频等操作&#xff0c;并且不需要额外获取照片/音频权限。 具体实现如下&#xff1a; 1&#xff1a;请求 Log.d(TAG, "Build.VERSION.SDK_INT" Build.VERS…...

【问题处理】GIT合并解决冲突后,导致其他人代码遗失的排查

GIT合并解决冲突后&#xff0c;导致其他人代码遗失的排查 项目场景问题描述分析与处理&#xff1a;1. 警告分析2. 文件分析3. 问题关键4. 验证 解决策略总结 &#x1f4d5;作者简介&#xff1a;战斧&#xff0c;从事金融IT行业&#xff0c;有着多年一线开发、架构经验&#xff…...

H264视频压缩格式

H264简介 H.264从1999年开始&#xff0c;到2003年形成草案&#xff0c;最后在2007年定稿有待核实。在ITU的标准里称为H.264, 在MPEG的标准里是MPEG-4的一个组成部分-MPEG-4 Part 10&#xff0c;又叫Advanced Video Codec&#xff0c;因此常常称为MPEG-4AVC或直接叫AVC。 压缩算…...

动态的中秋爱心演示送女友用python生成爱心软件文末附c++语言写法

用python生成爱心软件 用python生成动态爱心软件 目录 用python生成爱心软件 完整代码 代码解释 逐句解释 效果展示&#xff1a; 如何打包 c写法 完整代码 import turtledef draw_heart():love turtle.Turtle()love.getscreen().bgcolor("black")love.…...

macOS - 使用VLC

文章目录 关于 VLC安装查看帮助流媒体 MRL 语法:URL 语法:主程序 (core)音频视频截图:窗口属性: 子画面屏幕显示&#xff08;OSD&#xff09;:字幕:覆盖:轨道设置:播放控制:默认设备:高级: 输入播放列表性能选项: 热键跳跃大小: 关于 VLC VLC media player VLC 是一款自由、开…...

java微服务项目整合skywalking链路追踪框架

skywalking官网网址&#xff1a;Apache SkyWalking 目录 1、安装skywalking 2、微服务接入skywalking 3、skywalking数据持久化 1、安装skywalking 下载skywalking&#xff0c;本篇文章使用的skywalking版本是8.5.0 Index of /dist/skywalkinghttps://archive.apache.org/…...

pandas 笔记: interpolate

一个用于填充 NaN 值的工具 1 基本用法 DataFrame.interpolate(methodlinear, *, axis0, limitNone, inplaceFalse, limit_directionNone, limit_areaNone, downcast_NoDefault.no_default, **kwargs) 2 主要参数 method 多种插值技术 linear: 默认值&#xff0c;使用线性插…...

应用程序接口(API)安全的入门指南

本文简单回顾了 API 的发展历史&#xff0c;其基本概念、功能、相关协议、以及使用场景&#xff0c;重点讨论了与之相关的不同安全要素、威胁、认证方法、以及十二项优秀实践。 根据有记录的历史&#xff0c;随着 Salesforce 的销售自动化解决方案的推出&#xff0c;首个 Web…...

JavaWeb概念视频笔记

学习地址&#xff1a;102.尚硅谷_Tomcat-Tomcat服务器和Servlet版本的对应关系_哔哩哔哩_bilibili 目录 1.JavaWeb的概念 2.Web资源的分类 3.常用的Web服务器 4.Tomcat服务器和Servlet版本的对应关系 5.Tomcat的使用 a.安装 b.目录介绍 c.如何启动 Tomcat 服务器 另一…...

网络请求【小程序】

一、get 二、post 1.获取相应数据 Page({/*** 页面的初始数据*/data: { inptValue:, isArr:[]},/*** 生命周期函数--监听页面加载*/onLoad(options) {},onSubmit(){// console.log(this.data.inptValue)//2.后台请求数据wx.request({url: https://tea.qingnian8.com/demoArt/…...

python 调用adb shell

目录 python调用 bat&#xff0c;启动新窗口&#xff0c;但是不能自动在进入shell 后执行提前设置的操作。 python启动cmd新窗口&#xff0c;但是不能自动在进入shell 后执行提前设置的操作。 python调用 bat&#xff0c;启动新窗口&#xff0c;但是不能自动在进入shell 后执…...

网络六边形受到攻击

大家读完觉得有帮助记得关注和点赞&#xff01;&#xff01;&#xff01; 抽象 现代智能交通系统 &#xff08;ITS&#xff09; 的一个关键要求是能够以安全、可靠和匿名的方式从互联车辆和移动设备收集地理参考数据。Nexagon 协议建立在 IETF 定位器/ID 分离协议 &#xff08;…...

【Linux】shell脚本忽略错误继续执行

在 shell 脚本中&#xff0c;可以使用 set -e 命令来设置脚本在遇到错误时退出执行。如果你希望脚本忽略错误并继续执行&#xff0c;可以在脚本开头添加 set e 命令来取消该设置。 举例1 #!/bin/bash# 取消 set -e 的设置 set e# 执行命令&#xff0c;并忽略错误 rm somefile…...

微软PowerBI考试 PL300-选择 Power BI 模型框架【附练习数据】

微软PowerBI考试 PL300-选择 Power BI 模型框架 20 多年来&#xff0c;Microsoft 持续对企业商业智能 (BI) 进行大量投资。 Azure Analysis Services (AAS) 和 SQL Server Analysis Services (SSAS) 基于无数企业使用的成熟的 BI 数据建模技术。 同样的技术也是 Power BI 数据…...

day52 ResNet18 CBAM

在深度学习的旅程中&#xff0c;我们不断探索如何提升模型的性能。今天&#xff0c;我将分享我在 ResNet18 模型中插入 CBAM&#xff08;Convolutional Block Attention Module&#xff09;模块&#xff0c;并采用分阶段微调策略的实践过程。通过这个过程&#xff0c;我不仅提升…...

解锁数据库简洁之道:FastAPI与SQLModel实战指南

在构建现代Web应用程序时&#xff0c;与数据库的交互无疑是核心环节。虽然传统的数据库操作方式&#xff08;如直接编写SQL语句与psycopg2交互&#xff09;赋予了我们精细的控制权&#xff0c;但在面对日益复杂的业务逻辑和快速迭代的需求时&#xff0c;这种方式的开发效率和可…...

前端导出带有合并单元格的列表

// 导出async function exportExcel(fileName "共识调整.xlsx") {// 所有数据const exportData await getAllMainData();// 表头内容let fitstTitleList [];const secondTitleList [];allColumns.value.forEach(column > {if (!column.children) {fitstTitleL…...

转转集团旗下首家二手多品类循环仓店“超级转转”开业

6月9日&#xff0c;国内领先的循环经济企业转转集团旗下首家二手多品类循环仓店“超级转转”正式开业。 转转集团创始人兼CEO黄炜、转转循环时尚发起人朱珠、转转集团COO兼红布林CEO胡伟琨、王府井集团副总裁祝捷等出席了开业剪彩仪式。 据「TMT星球」了解&#xff0c;“超级…...

Keil 中设置 STM32 Flash 和 RAM 地址详解

文章目录 Keil 中设置 STM32 Flash 和 RAM 地址详解一、Flash 和 RAM 配置界面(Target 选项卡)1. IROM1(用于配置 Flash)2. IRAM1(用于配置 RAM)二、链接器设置界面(Linker 选项卡)1. 勾选“Use Memory Layout from Target Dialog”2. 查看链接器参数(如果没有勾选上面…...

sqlserver 根据指定字符 解析拼接字符串

DECLARE LotNo NVARCHAR(50)A,B,C DECLARE xml XML ( SELECT <x> REPLACE(LotNo, ,, </x><x>) </x> ) DECLARE ErrorCode NVARCHAR(50) -- 提取 XML 中的值 SELECT value x.value(., VARCHAR(MAX))…...

华为云Flexus+DeepSeek征文|DeepSeek-V3/R1 商用服务开通全流程与本地部署搭建

华为云FlexusDeepSeek征文&#xff5c;DeepSeek-V3/R1 商用服务开通全流程与本地部署搭建 前言 如今大模型其性能出色&#xff0c;华为云 ModelArts Studio_MaaS大模型即服务平台华为云内置了大模型&#xff0c;能助力我们轻松驾驭 DeepSeek-V3/R1&#xff0c;本文中将分享如何…...