c++9月23日

1.My_string

头文件

#ifndef MY_STRINGHEAD_H
#define MY_STRINGHEAD_H#include <iostream>
#include <cstring>
using namespace std;class My_string
{
private:char *ptr;//指向字符数组的指针int size;//字符数组的最大容量int len ;//当前字符串的长度
public:My_string(){this->size=15;this->len=0;this->ptr[len]='\0';}My_string(const char *src);//有参构造My_string(const My_string & other);//拷贝构造My_string & operator=(const My_string &other);~My_string();//析构函数bool My_empty();//判空void push_back(char value);//尾插void pop_back();//尾删char * data ();char &at(int index);int get_len();int get_size();void Double_String();//双倍扩容void show();
};#endif // MY_STRINGHEAD_H

功能函数

#include "my_stringhead.h"My_string::My_string(const char *src)//有参构造{this->size = strlen(src);this->len=this->size;this->ptr = new char[this->size+1];strcpy(ptr,src);}My_string::My_string(const My_string & other):size(other.size),len(other.len)//拷贝构造{this->ptr = new char[this->size+1];strcpy(this->ptr,other.ptr);}My_string & My_string::operator=(const My_string &other)//拷贝赋值{if(this!=&other){this->size = other.size;this->len = other.len;strcpy(this->ptr,other.ptr);}return *this;}My_string::~My_string()//析构函数{delete this->ptr;}bool My_string:: My_empty()//判空{return len==0;}void My_string:: push_back(char value)//尾插{this->size++;char *Newptr=new char[this->size];strcpy(Newptr,ptr);delete this->ptr;this->ptr=Newptr;this->ptr[this->len]=value;this->len++;this->ptr[this->len]='\0';}void My_string::pop_back()//尾删{this->size--;this->len--;this->ptr[this->len]='\0';}char & My_string::at(int index){if(index>=0&&index<this->len){return this->ptr[index];}else{cout<<"输入不合法"<<endl;exit(-1);}}char *My_string::data ()//转换为c风格字符串{return this->ptr;}int  My_string::get_len(){return this->len;}int My_string:: get_size(){return this->len;}void My_string::Double_String()//双倍扩容{if(this->len+1>=this->size){this->size*=2;char *Newptr=new char[this->size];strcpy(Newptr,ptr);delete this->ptr;this->ptr=Newptr;}}void My_string:: show(){cout<<this->ptr<<endl;}

主函数

#include "my_stringhead.h"int main()
{My_string str("hello world");str.show();My_string str1;str1.operator = (str);str1.show();return 0;
}

2.思维导图

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

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

相关文章

IMX6UL开发板中断实验(三)

在上一节我们编写完成了中断驱动文件和中断驱动头文件&#xff0c;那么这一讲我们将继续中断实验 下面就是GPIO的中断设置&#xff0c;第一步要设置中断GPIO的触发方式&#xff0c;首先我们先看到寄存器&#xff0c;一共有GPIOx_ICR1和ICR2&#xff0c; 图如上&#xff0c;ICR1…

【采集软件】小红书评论高级爬取工具

用python开发了一个爬虫采集软件&#xff0c;叫【爬小红书搜索评论软件】&#xff0c;支持2种模式的评论采集&#xff1a; 1. 根据关键词采集评论&#xff0c;爬取思路&#xff1a;笔记关键词->笔记链接->评论 2. 根据笔记链接采集评论&#xff0c;爬取思路&#xff1a;…

每日一练:翻转二叉树

226. 翻转二叉树 - 力扣&#xff08;LeetCode&#xff09; 一、题目要求 给你一棵二叉树的根节点 root &#xff0c;翻转这棵二叉树&#xff0c;并返回其根节点。 示例 1&#xff1a; 输入&#xff1a;root [4,2,7,1,3,6,9] 输出&#xff1a;[4,7,2,9,6,3,1]示例 2&#xff…

MATLAB Function模块用法案例

Simulink中的MATLAB Function模块是一个非常灵活的工具&#xff0c;允许用户直接在Simulink模型中嵌入MATLAB代码&#xff0c;以实现自定义的算法或功能 MATLAB Function模块的基本用法 添加模块&#xff1a; 在Simulink的模型窗口中&#xff0c;通过搜索“MATLAB Function”…

大数据新视界 --大数据大厂之 Reactjs 在大数据应用开发中的优势与实践

&#x1f496;&#x1f496;&#x1f496;亲爱的朋友们&#xff0c;热烈欢迎你们来到 青云交的博客&#xff01;能与你们在此邂逅&#xff0c;我满心欢喜&#xff0c;深感无比荣幸。在这个瞬息万变的时代&#xff0c;我们每个人都在苦苦追寻一处能让心灵安然栖息的港湾。而 我的…

2024 年最新前端工程师 Vue3 框架详细教程(更新中)

vue3 前端框架概述 vue 3 是 Vue.js 的最新版本&#xff0c;是一个用于构建用户界面的渐进式 JavaScript 框架。和 vue 2 相比&#xff0c;vue 3 引入了组合式 API&#xff0c;使开发者可以通过函数组织代码逻辑&#xff0c;适合处理复杂功能。vue 3 在性能上也有显著提升&…

AI Agent智能应用从0到1定制开发Langchain+LLM全流程解决方案与落地实战

大模型微调实战&#xff1a;精通、指令微调、开源大模型微调、对齐与垂直领域应用29套AI全栈大模型项目实战&#xff0c;人工智能视频课程-多模态大模型&#xff0c;微调技术训练营&#xff0c;大模型多场景实战&#xff0c;AI图像处理&#xff0c;AI量化投资&#xff0c;OPenC…

使用Charles抓包Android App数据

版权归作者所有&#xff0c;如有转发&#xff0c;请注明文章出处&#xff1a;https://cyrus-studio.github.io/blog/ 抓包环境准备 1. 下载安装charles charles下载地址&#xff1a;https://www.charlesproxy.com/latest-release/download.do 2. SSL代理设置 3. http代理和…

【计算机网络强化】计网强化笔记

第一章 计算机网络体系结构 1.1 计算机网络概述 1.计算机网络由若干个节点和连接这些节点的链路组成 2. 3.计算机网络的组成 ①硬件、软件、协议 ②边缘部分和核心部分 ③通信子网和资源子网 4.电路交换、报文交换和分组交换 ①电路交换 分为三步&#xff1a;建立连接、…

使用SBP打AssetBundle时脚本引用丢失

1&#xff09;使用SBP打AssetBundle时脚本引用丢失 2&#xff09;在UE 5.3中连接Power节点为何10的3次幂等于1009 3&#xff09;如何在Widget中倾斜一张纹理贴图 4&#xff09;如何在打开关卡蓝图时更改游戏模式 这是第401篇UWA技术知识分享的推送&#xff0c;精选了UWA社区的热…

.NET 6.0 WebAPI 使用JWT生成Token的验证授权

1.引入相关程序包JwtBearer注意版本: 2.配置文件appsettings.json写相关配置参数(也可不写&#xff0c;写在程序里面&#xff0c;数据库读取也是一样的) , //JWT加密"JWTToken": {"SecretKey": "jsaduwqe6asdjewejdue7dfmsdfu0sdfmwmsd8wfsd6",…

Postman导出报告

一、下载node.js 导出测试报告我们需要用到一个工具叫做newman&#xff0c;它是node.js开发的一个插件&#xff0c;要使用他需要先下载node.js&#xff0c;安装包可以去官网下载&#xff0c;这里我分享一个 链接: https://pan.baidu.com/s/179yLzwTtLH3eihYs_yxrZA?pwd7bqt 提…

数据分析:主成分以及贡献变量解析

禁止商业或二改转载,仅供自学使用,侵权必究,如需截取部分内容请后台联系作者! 文章目录 介绍分析目的变量的loadings的含义加载依赖包导入数据数据预处理PCA计算PCA图主成分分布系统信息介绍 PCA分析,即主成分分析(Principal Component Analysis),是一种统计方法,用于…

吴恩达深度学习笔记:卷积神经网络(Foundations of Convolutional Neural Networks)2.3-2.4

目录 第四门课 卷积神经网络&#xff08;Convolutional Neural Networks&#xff09;第二周 深度卷积网络&#xff1a;实例探究&#xff08;Deep convolutional models: case studies&#xff09;2.3 残差网络(ResNets)(Residual Networks (ResNets))2.4 残差网络为什么有用&am…

在虚幻引擎中实时显示帧率

引擎自带了显示帧率的功能 但是只能在编辑器中显示 , 在游戏发布后就没有了 , 所以我们要自己做一个 创建一个控件蓝图 创建画布和文本 , 修改文本 文本绑定函数 , 点击创建绑定 添加一个名为 FPS 的变量 格式化文本 用大括号把变量包起来 {FPS Int} FPS 然后转到事件图表…

RHCS认证-Linux(RHel9)-Ansible

文章目录 一、ansible 简介二 、ansible部署三、ansible服务端测试四 、ansible 清单inventory五、Ad-hot 点对点模式六、YAML语言模式七、RHCS-Ansible附&#xff1a;安装CentOS-Stream 9系统7.1 ansible 执行过程7.2 安装ansible&#xff0c;ansible-navigator7.2 部署ansibl…

一看就会!PS2024下载安装教程详解

PS2024下载方法&#xff1a; PS2024安装教程&#xff1a; 1、右击【PS2024.zip】&#xff0c;选择【解压到PS2024】 2、右击【Set-up.exe】&#xff0c;选择【以管理员身份运行】 3、点击右下角灰色的小文件夹图标&#xff0c;选择【更改位置】 4、选择安装路径后&#xff0c;…

策略模式与工厂模式的区别

《策略模式与工厂模式的区别》 策略模式&#xff08;Strategy Pattern&#xff09; 和 工厂模式&#xff08;Factory Pattern&#xff09; 都是常见的设计模式&#xff0c;虽然它们在设计目标上有一些相似之处&#xff0c;如解耦代码、增强扩展性&#xff0c;但它们的应用场景和…

数字化转型中的供应链管理优化

在当今全球化和数字化的浪潮下&#xff0c;企业供应链管理面临着前所未有的挑战和机遇&#xff0c;企业在数字化转型过程中&#xff0c;如何优化供应链管理成为提升竞争力的关键。通过应用先进技术如RPA机器人流程自动化、大数据分析、物联网等&#xff0c;企业可以显著提高物流…

go解决引入私有包报错“Repository owner does not exist“的两种方式

当你写好引入的私有包,执行go mod tidy报错: Gogs: Repository owner does not exist fatal: Could not read from remote repository. Please make sure you have the correct access rights and the repository exists. 目前我的两种解决方案: 一、拉群整个…