新闻类网站开发难点/代运营公司
1、顺序表、栈、队列都更改成模板类
(1)顺序表
#include <iostream>
#include <cstring>using namespace std;template <typename T1,typename T2,typename T3>
class My_string
{
private:T1 *ptr; //指向字符数组的指针T2 size; //字符串的最大容量T3 len; //字符串当前容量public://无参构造My_string():size(15){this->ptr = new char[size];this->ptr[0] = '\0'; //表示串为空串this->len = 0;}//有参构造My_string(const T1 src){len = strlen(src);size = len+1;ptr = new char[size];strcpy(ptr,src);}My_string(T2 num, T1 value): size(num+1),len(num){ptr = new char[size];for(int i=0;i<num;i++){ptr[i] = value;}ptr[num] = '\0';}//拷贝构造My_string(const T1 &other):size(other.size),len(other.len){ptr = new char[size];strcpy(ptr,other.ptr);}//拷贝赋值template <typename T>My_string & operator =(const T &other){if(this ==&other){return *this;}delete [] ptr;size = other.size;len = other.len;ptr = new char[size];strcpy(ptr,other.ptr);return *this;}//析构函数~My_string(){delete [] ptr;}//判空bool empty(){return len ==0;}//尾插template <typename T>void push_back(T value){if(len+1>=size){size *=2;char* new_ptr = new char[size];strcpy(new_ptr,ptr);delete []ptr;ptr = new_ptr;}ptr[len] = value;len++;ptr[len] = '\0';}//尾删void pop_back(){if(len>0){len--;ptr[len]='\0';}}//at函数实现template <typename T>char &at(T index){if(index<0 ||index>=len){//throw out_of_range("超出");}return ptr[index];}//清空函数void clear(){len = 0;ptr[0] = '\0';}//返回C风格字符串char* data(){return ptr;}//返回实际长度int get_length(){return len;}//返回当前最大容量int get_size(){return size;}void show(){cout<<ptr<<" ";}};int main()
{My_string <char,int,int>s1;s1.push_back<char>('d');s1.show();}
(2)栈
#include <iostream>using namespace std;template <typename T1,typename T2,typename T3>
class My_stack
{
private:T1 *ptr;T2 size;T3 top;public:My_stack():size(20),top(-1){ptr = new char[size];}My_stack(int num){size = num;ptr = new char[num];top = -1;}template <typename T>My_stack(const T &other){top = other.top;size = other.size;ptr = new char[size];for(int i=0;i<size;i++){ptr[i] = other.ptr[i];}}template <typename T>My_stack &operator=(const T &other){if(this==&other){return *this;}delete [] ptr;top = other.top;size = other.size;ptr = new char[size];for(int i=0;i<size;i++){ptr[i] = other.ptr[i];}return *this;}char My_top(){return ptr[top];}void My_empty(){if(top==-1){cout<<"栈为空"<<endl;}else{cout<<"栈不为空"<<endl;}}int My_size(){return top+1;}template <typename T>void My_push(const T dat){if(top+1==size){cout<<"栈满不能继续添加"<<endl;}else{ptr[++top] = dat;}}void My_pop(){ptr[top--] = 0;}};int main()
{My_stack <char,int,int>my_stack;my_stack.My_push('1');my_stack.My_push('2');my_stack.My_push('3');cout << "Top: " << my_stack.My_top() <<endl;my_stack.My_pop();my_stack.My_empty();cout << "Size: " << my_stack.My_size() <<endl;return 0;
}
(3)队列
#include <iostream>using namespace std;#include <iostream>
#include <stdexcept>template<typename T1,typename T2,typename T3,typename T4>
class My_queue
{
private:T1 *ptr;T2 size;T3 back;T4 fro;public:My_queue():size(20),back(0),fro(0){ptr = new char[size];}template<typename T>My_queue(T num){size = num;ptr = new char[num];back = 0;fro = 0;}~My_queue(){delete [] ptr;}template<typename T>My_queue(const T &other){fro = other.fro;back = other.back;size = other.size;ptr = new char[size];for(int i=0;i<size;i++){ptr[i] = other.ptr[i];}}template<typename T>My_queue &operator=(const T &other){if(this==&other){return *this;}delete [] ptr;fro = other.fro;back = other.back;size = other.size;ptr = new char[size];for(int i=0;i<size;i++){ptr[i] = other.ptr[i];}return *this;}char My_front(){return ptr[fro];}char My_back(){return ptr[back-1];}bool My_empty(){return fro == back;}int My_size(){return back - fro;}template<typename T>void My_push(const T dat){if(back+1==size){cout<<"栈满不能继续添加"<<endl;}else{ptr[back++] = dat;}}void My_pop(){ptr[fro++] = 0;}};int main()
{My_queue <char,int,int,int> my_queue;my_queue.My_push('c');my_queue.My_push('2');cout << "Front: " << my_queue.My_front() <<endl; // 输出 1cout<<"back:"<<my_queue.My_back()<<endl;cout << "Size: " << my_queue.My_size() << endl; // 输出 1return 0;
}
2、思维导图
相关文章:

C++学习9.27
1、顺序表、栈、队列都更改成模板类 (1)顺序表 #include <iostream> #include <cstring>using namespace std;template <typename T1,typename T2,typename T3> class My_string { private:T1 *ptr; //指向字符数组的指针T2…...

【STM32开发环境搭建】-1-Keil(MDK) 5.27软件安装和注册教程
目录 1 安装前装备工作 2 安装KEIL(MDK-ARM) 5.27软件 3 注册KEIL(MDK-ARM) 5.27软件,获取License许可证 4 手动安装STM32F0,STM32F1,STM32F4,STM32F7,STM32H7的支持包 4.1 下载STM32的支持包 4.2 安装STM32的支…...

武汉正向科技格雷母线公司,无人天车系统,采用格雷母线定位技术
正向科技-格雷母线高精确定位技术-实操视频 高精度格雷母线内胆采用刚性内胆,基板采用精密度数控加工工艺,穿线卡采用高精度模具制作,不采用泡沫板填充,提高了地址检测精度和线性度。 最新一代的格雷母线定位技术特点是全数字化检…...

【保姆级教程】批量下载Pexels视频Python脚本(以HumanVid数据集为例)
目录 方案一:转换链接为download模式 方案二:获取源链接后下载 附录:HumanVid链接 方案一:转换链接为download模式 将下载链接的后缀加入 /download 然后用下面的脚本下载: import argparse import json import o…...

Python画笔案例-067 绘制配乐七角星
1、绘制橙子 通过 python 的turtle 库绘制 配乐七角星,如下图: 2、实现代码 绘制 配乐七角星 ,以下为实现代码: """配乐七角星.py本程序需要coloradd模块支持,安装方法:pip install coloradd""" import turtle from coloradd import color…...

Spark Job 对象 详解
在 Apache Spark 中,Job 对象是执行逻辑的核心组件之一,它代表了对一系列数据操作(如 transformations 和 actions)的提交。理解 Job 的本质和它在 Spark 中的运行机制,有助于深入理解 Spark 的任务调度、执行模型和容…...

C#中NModbus4中常用的方法
NModbus4 是一个用于 Modbus 协议通信的 C# 库,它支持串行 ASCII、RTU、TCP 和 UDP 协议。以下是 NModbus4 中常用的一些方法: 创建连接: ModbusSerialMaster.CreateRtu(SerialPort serialPort): 创建一个 RTU 串行连接。ModbusSerialMaster.…...

【Linux】线程同步与互斥
一、线程间互斥 1 .进程线程间的互斥相关概念 临界资源:多线程执行流共享的资源就叫做临界资源 临界区:每个线程内部,访问临界资源的代码,就叫做临界区 互斥:任何时刻,互斥保证有且只有一个执行流进入临界…...

003、网关路由问题
1. nginx配置404跳转回默认路由 https://blog.csdn.net/masteryee/article/details/83689954 https://blog.csdn.net/IbcVue/article/details/133230460 https://www.jb51.net/server/317970ynk.htm https://blog.csdn.net/u014438244/article/details/120531287 https://blog…...

Eclipse 快捷键:提高开发效率的利器
Eclipse 快捷键:提高开发效率的利器 Eclipse 是一款广泛使用的集成开发环境(IDE),它为Java、C、PHP等编程语言提供了强大的开发支持。对于开发者来说,熟练掌握Eclipse的快捷键不仅能提高编码效率,还能减少…...

Agent智能体
Agent(智能体)是一个能够感知环境并采取行动的自主实体,通常被设计用于在特定的环境中执行任务。智能体可以通过学习、推理等方式来决策,目标是最大化某种效用或实现某个预定的目标。它们广泛应用于自动化系统、游戏AI、机器人、自…...

用Promise实现前端并发请求
/** * 构造假请求 */ async function request(url) {return new Promise((resolve) > {setTimeout(() > {resolve(url);},// Math.random() * 500 800,1000,);}); }请求一次,查看耗时,预计应该是1s: async function requestOnce() {c…...

通过队列实现栈
请你仅使用两个队列实现一个后入先出(LIFO)的栈,并支持普通栈的全部四种操作(push、top、pop 和 empty)。 实现 MyStack 类: void push(int x) 将元素 x 压入栈顶。int pop() 移除并返回栈顶元素。int to…...

Mac下可以平替paste的软件pastemate,在windows上也能用,还可以实现数据多端同步
Mac平台上非常经典的剪贴板管理工具:「Paste」。作为一款功能完善且易用的工具,「Paste」在实际使用中体现出了许多令人欣赏的特点。但是它是一个收费软件,一年至少要24美元. 现有一平替软件pastemate,功能更加丰富,使用更加方便。 下载地址…...

106. 从中序与后序遍历序列构造二叉树
文章目录 106. 从中序与后序遍历序列构造二叉树思路 105. 从前序与中序遍历序列构造二叉树思路 思考 106. 从中序与后序遍历序列构造二叉树 106. 从中序与后序遍历序列构造二叉树 给定两个整数数组 inorder 和postorder,其中 inorder 是二叉树的中序遍历ÿ…...

监控和日志管理:深入了解Nagios、Zabbix和Prometheus
在现代IT运维中,监控和日志管理是确保系统稳定性和性能的关键环节。本文将介绍三种流行的监控工具:Nagios、Zabbix和Prometheus,帮助您了解它们的特点、使用场景以及如何进行基本配置。 一、Nagios Nagios 是一个强大的开源监控系统&#x…...

Win10下载Python:一步步指南
Win10下载Python:一步步指南 在Win10操作系统中下载并安装Python可能是一项挑战性的任务,但是在本文中,我们将向您提供三个不同的方法,以便轻松地完成这项任务。 方法一:使用Microsoft Store Microsoft Store是一个…...

Race Karts Pack 全管线 卡丁车赛车模型素材
是8辆高细节、可定制的赛车,内部有纹理。经过优化,可在手机游戏中使用。Unity车辆系统已实施-准备驾驶。 此套装包含8种不同的车辆,每种车辆有8-10种颜色变化,总共有75种车辆变化! 技术细节: -每辆卡丁车模型使用4种材料(车身、玻璃、车轮和BrakeFlare) 纹理大小: -车…...

C#——switch案例讲解
案例:根据输入的内容判断执行哪一条输出语句 string number txtUserName.Text; switch(number) { case"101":MessageBox.Show("您进入了101房间");break; case"102":MessageBox.Show("您进入了102房间");break; case&quo…...

技术美术一百问(02)
问题 前向渲染和延迟渲染的流程 前向渲染和延迟渲染的区别 G-Buffer是什么 前向渲染和延迟渲染各自擅长的方向总结 GPU pipeline是怎么样的 Tessellation的三个阶段 什么是图形渲染API? 常见的图形渲染API有哪些? 答案 1.前向渲染和延迟渲染的流程 【例图…...

12 函数的应用
函数的应用 一、Shell递归函数 函数优点: 函数在程序设计中是一个非常重要的概念,它可以将程序划分成一个个功能相对独立的代码块,使代码的模块化更好,结构更加清晰,并可以有效地减少程序的代码量。 递归…...

鸿蒙开发(NEXT/API 12)【硬件(接入手写套件)】手写功能开发
接入手写套件后,可以在应用中创建手写功能界面。界面包括手写画布和笔刷工具栏两部分,手写画布部分支持手写笔和手指的书写效果绘制,笔刷工具栏部分提供多种笔刷和编辑工具,并支持对手写功能进行设置。接入手写套件后将自动开启一…...

基于python+flask+mysql的音频信息隐藏系统
博主介绍: 大家好,本人精通Java、Python、C#、C、C编程语言,同时也熟练掌握微信小程序、Php和Android等技术,能够为大家提供全方位的技术支持和交流。 我有丰富的成品Java、Python、C#毕设项目经验,能够为学生提供各类…...

18724 二叉树的遍历运算
### 思路 1. **递归构建树**: - 先序遍历的第一个节点是根节点。 - 在中序遍历中找到根节点的位置,左边部分是左子树,右边部分是右子树。 - 递归构建左子树和右子树。 2. **递归生成后序遍历**: - 递归生成左子树的…...

代理模式简介:静态代理VS与动态代理
代理模式:静态代理VS动态代理 1、定义2、分类2.1 静态代理2.2 动态代理 3、使用场景4、总结 💖The Begin💖点点关注,收藏不迷路💖 1、定义 代理模式是一种设计模式,通过代理对象控制对目标对象的访问。简而…...

使用 Dockerfile 和启动脚本注册 XXL-Job 执行器的正确 IP 地址
解决方案:使用 Dockerfile 和启动脚本注册 XXL-Job 执行器的正确 IP 地址 在使用容器化方式注册 XXL-Job 执行器时,由于容器的 IP 地址是动态分配的,可能会导致调度中心无法访问执行器。为了解决这个问题,可以使用 Dockerfile 和…...

Python连接Kafka收发数据等操作
目录 一、Kafka 二、发送端(生产者) 三、接收端(消费者) 四、其他操作 一、Kafka Apache Kafka 是一个开源流处理平台,由 LinkedIn 开发,并于 2011 年成为 Apache 软件基金会的一部分。Kafka 广泛用于构…...

MySql在更新操作时引入“两阶段提交”的必要性
日志模块有两个redo log和binlog,redo log 是引擎层的日志(负责存储相关的事),binlog是在Server层,主要做MySQL共嗯那个层面的事情。redo log就像一个缓冲区,可以让当更新操作的时候先放redo log中…...

充气模块方案——无刷充气泵pcba方案
在方案开发中,充气效率是无刷充气泵PCBA方案开发中的关键问题。一般通过优化电路设计和控制算法,可以实现高效的气体压缩和快速的充气效果。另外,选择合理的电机驱动器和传感器等元器件能够提高打气泵的功率和效率,减少充气时间&a…...

[sql-03] 求阅读至少两章的人数
准备数据 CREATE TABLE book_read (bookid varchar(150) NOT NULL COMMENT 书籍ID,username varchar(150) DEFAULT NULL COMMENT 用户名,seq varchar(150) comment 章节ID ) ENGINEInnoDB DEFAULT CHARSETutf8mb4 COMMENT 用户阅读表insert into book_read values(《太子日子》…...