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

C++day4

1、仿照string类,完成myString 类

#include <iostream>
#include <cstring>using namespace std;
class myString
{private:char *str;          //记录c风格的字符串int size;            //记录字符串的实际长度public://无参构造myString():size(10){str = new char[size];         //构造出一个长度为10的字符串strcpy(str,"");         //赋值为空串}//有参构造myString(const char *s)          //string  s("hello world"){size = strlen(s);str = new char[size+1];strcpy(str, s);}//拷贝构造myString(const myString &other):str(new char(*other.str)),size(other.size){cout<<"拷贝构造函数"<<endl;}//析构函数~myString(){delete str;cout<<"myString::析构函数:"<<this<<endl;}//拷贝赋值函数myString & operator=(const myString &other){if(this != &other){this->size = other.size;//判断原来的指针空间是否被清空if(this->str != NULL){delete this->str;}this->str = new char(*other.str);}cout<<"myString::拷贝赋值函数"<<endl;return *this;}//判空函数bool my_empty(){if(0 == get_size()){return true;}return false;}//size函数int get_size(){size=0;while(*str != 0){str++;size++;}return size;}//c_str函数char *c_str(){return this->str;}//at函数char &at(int pos){if(pos >= 0 && pos< size){return this->str[pos];}else{cout<<"数组越界"<<endl;}}//加号运算符重载const myString operator+ (const myString &R)const{myString c;c.str=strcat(this->str, R.str);return c;}//加等于运算符重载myString operator+= (const myString &R){//this->str = new char[this->size+R.size+1];strcat(this->str,R.str);this->size+=R.size;return *this;}//关系运算符重载(>)bool operator> (const myString &R)const{if(strcmp(this->str,R.str) > 0){return true;}elsereturn false;}//中括号运算符重载char & operator[](int i){if(i >= 0 && i< size){return this->str[i];}else{cout<<"数组越界"<<endl;}}void display(){cout<<this->str<<endl;}
};
int main()
{myString ptr("hello");myString ptr2("world");myString ptr3 = ptr+ptr2;ptr3.display();cout<<ptr.at(1)<<endl;cout<<ptr[1]<<endl;ptr+=ptr2;ptr.display();return 0;
}

 

相关文章:

C++day4

1、仿照string类&#xff0c;完成myString 类 #include <iostream> #include <cstring>using namespace std; class myString {private:char *str; //记录c风格的字符串int size; //记录字符串的实际长度public://无参构造myString():size(10…...

【LeetCode-简单题】541. 反转字符串 II

文章目录 题目方法一&#xff1a;双指针 题目 方法一&#xff1a;双指针 题目的意思&#xff1a; 通俗一点说&#xff0c;每隔k个反转k个&#xff0c;末尾不够k个时全部反转&#xff1b; 需要注意右边界的取值 int r Math.min(l k -1,n-1);//取右边界与n-1的最小值 确定边界…...

Linux服务使用宝塔面板搭建网站,并发布公网访问

文章目录 前言1. 环境安装2. 安装cpolar内网穿透3. 内网穿透4. 固定http地址5. 配置二级子域名6. 创建一个测试页面 前言 宝塔面板作为简单好用的服务器运维管理面板&#xff0c;它支持Linux/Windows系统&#xff0c;我们可用它来一键配置LAMP/LNMP环境、网站、数据库、FTP等&…...

代码随想录算法训练营19期第48天

198.打家劫舍 视频讲解&#xff1a;动态规划&#xff0c;偷不偷这个房间呢&#xff1f;| LeetCode&#xff1a;198.打家劫舍_哔哩哔哩_bilibili 代码随想录 初步思路&#xff1a;动态规划。 总结&#xff1a; dp[i]&#xff1a;考虑下标i&#xff08;包括i&#xff09…...

【校招VIP】产品项目分析之竞品分析

考点介绍&#xff1a; 在产品经理的日常工作当中&#xff0c;经常需要针对某个具体问题或特定功能点进行竞品调研&#xff1b;竞品分析是结构化分析方法论&#xff0c;核心思想是通过对比的方法寻找最佳的解决方案。 产品项目分析之竞品分析-相关题目及解析内容可点击文章末尾…...

【JavaScript内置对象】Date对象,从零开始

【JavaScript内置对象】Date对象&#xff0c;从零开始 时间的表示方式 时间表示的基本概念 最初&#xff0c;人们是通过观察太阳的位置来决定时间的&#xff0c;但是这种方式有一个最大的弊端就是不同区域位置大家使用的时间是不一致的。 相互之间没有办法通过一个统一的时间…...

idea启动缓慢解决办法

idea启动缓慢解决办法 文章目录 idea启动缓慢解决办法前言一、修改内存大小二、虚拟机运行大小三、插件禁用1、安卓相关2、构建工具3、Code Coverage 代码覆盖率4、数据库5、部署工具6、html和xml7、ide settings8、JavaScript框架和工具9、jvm框架10、Keymap快捷键映射11、kot…...

App测试中ios和Android有哪些区别呢?

App测试中&#xff0c;大家最常问到的问题就是&#xff1a;ios和 Android有什么区别呢&#xff1f; 在Android端&#xff0c;我们经常会使用 JavaScript、 HTML、 CSS等技术来编写一些简单的 UI界面。而 iOS端&#xff0c;我们经常会使用到 UI设计、界面布局、代码结构、 API等…...

Flink JobManager的高可用配置

背景 在flink执行中&#xff0c;jobManager是一个负责执行流式应用执行和检查点生成的组件&#xff0c;一旦发生故障&#xff0c;那么其负责的所有应用都会被取消&#xff0c;所以我们需要对JobManager配置高可用的模式 JobManager高可用配置 配置JobManager的高可用需要使用…...

为什么Token手动添加到请求的Header中,通常使用“Authorization“字段?

为什么Token手动添加到请求的Header中&#xff0c;通常使用"Authorization"字段&#xff1f; 通常将Token放置在"Authorization"字段中的主要原因如下&#xff1a; 标准化&#xff1a;HTTP协议中定义了一些常见的头部字段&#xff0c;如"Authorizati…...

国际生态数据获取网络

1、https://lternet.edu/ 2、https://www.neonscience.org/ 3、https://www.tern.org.au/ 4、https://www.industry.gov.au/ 5、http://www.cbas.ac.cn/ 6、https://sdg.casearth.cn/datas/casearthData 7、https://data.casearth.cn/ 8、https://omai.casearth.cn/ai-l…...

爬虫逆向实战(34)-某视综数据(MD5、AES)

一、数据接口分析 主页地址&#xff1a;某视综 1、抓包 通过抓包可以发现数据接口是/rank/waiting/fans 2、判断是否有加密参数 请求参数是否加密&#xff1f; 通过查看“载荷”模块可以发现有一个sign参数 请求头是否加密&#xff1f; 无响应是否加密&#xff1f; 通过查…...

数据分析三剑客之Matplotlib

0.Matplotlib绘图和可视化 1.简介 我的前面两篇文章介绍了 Nimpy &#xff0c;Pandas 。今天来介绍一下Matplotlib。 简单来说&#xff0c;Matplotlib 是 Python 的一个绘图库。它包含了大量的工具&#xff0c;你可以使用这些工具创建各种图形&#xff0c;包括简单的散点图&…...

Python Opencv实践 - LBP特征提取

参考资料&#xff1a; python skimage库LBP提取特征local_binary_pattern参数解释_local_binary_pattern函数_friedrichor的博客-CSDN博客 LBP特征笔记_亦枫Leonlew的博客-CSDN博客 import cv2 as cv import numpy as np import matplotlib.pyplot as plt from skimage.feat…...

Docker 搭建Redis Cluster 集群

环境&#xff1a; centos7 redis:7.0.5 三主三从&#xff0c;六个节点 一、下载redis镜像 docker pull redis:7.0.5 二、创建虚拟网卡 docker network create redis-cluster# 查看创建的Docker网卡 docker network ls 网卡类型为bridge桥接类型 三、准备redis配置文件 redi…...

解决谷歌浏览器会http网站自动变成https的问题

不知道是不是升级的缘故&#xff0c;最近打开公司一个http网站&#xff0c;会自动跳去https&#xff0c;用了网上说的这个方案&#xff0c;如下&#xff1a; 但发现还不行&#xff0c;这时我尝试用点击地址栏左边那锁的那个图标&#xff0c;图如下&#xff1a; 然后点击网站设…...

go小知识2

Golang开发新手常犯的50个错误_gezhonglei2007的博客-CSDN博客 一些题目整理&#xff0c;附带大佬的解释 1.go中哪些值不能寻址& 常量&#xff08;const常量&#xff0c;字面值3.14&#xff0c;字符串“xxx”&#xff0c;函数或方法, map的val值&#xff09; golang中接…...

zabbix监控H3C设备

背景 常见的服务和主机已经使用Prometheus进行监控了&#xff0c;但是网络设备还未配置监控。使用基于SNMP对网络设备进行监控。 设备概览 主要类型为H3C的路由器和交换机。 H3CS5560交换机 路由器MER5200 er8300 一台群晖的NAS服务 步骤 配置网络设备开启telnet远程&…...

国产化改造之Mysql迁移方案:Mysql Galera Cluster

一、背景 因某业务系统OS国产化改造&#xff0c;现需将生成环境Mysql 主从迁移到新部署的BCLinux OS主机上&#xff1b;如果保障业务不断&#xff0c;平滑迁移并成功割接将是本次方案的重要方向&#xff0c;现场环境涉及需迁移数据780G左右&#xff0c;目标主机OS版本&#xff…...

bootstrap表单类型

1.基本格式 <form><div class"form-group"><label>电子邮件</label><input type"email" class"form-control" placeholder"请输入你的电子邮件" /></div><div class"form-group"&g…...

日语学习-日语知识点小记-构建基础-JLPT-N4阶段(33):にする

日语学习-日语知识点小记-构建基础-JLPT-N4阶段(33):にする 1、前言(1)情况说明(2)工程师的信仰2、知识点(1) にする1,接续:名词+にする2,接续:疑问词+にする3,(A)は(B)にする。(2)復習:(1)复习句子(2)ために & ように(3)そう(4)にする3、…...

8k长序列建模,蛋白质语言模型Prot42仅利用目标蛋白序列即可生成高亲和力结合剂

蛋白质结合剂&#xff08;如抗体、抑制肽&#xff09;在疾病诊断、成像分析及靶向药物递送等关键场景中发挥着不可替代的作用。传统上&#xff0c;高特异性蛋白质结合剂的开发高度依赖噬菌体展示、定向进化等实验技术&#xff0c;但这类方法普遍面临资源消耗巨大、研发周期冗长…...

线程与协程

1. 线程与协程 1.1. “函数调用级别”的切换、上下文切换 1. 函数调用级别的切换 “函数调用级别的切换”是指&#xff1a;像函数调用/返回一样轻量地完成任务切换。 举例说明&#xff1a; 当你在程序中写一个函数调用&#xff1a; funcA() 然后 funcA 执行完后返回&…...

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

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

ElasticSearch搜索引擎之倒排索引及其底层算法

文章目录 一、搜索引擎1、什么是搜索引擎?2、搜索引擎的分类3、常用的搜索引擎4、搜索引擎的特点二、倒排索引1、简介2、为什么倒排索引不用B+树1.创建时间长,文件大。2.其次,树深,IO次数可怕。3.索引可能会失效。4.精准度差。三. 倒排索引四、算法1、Term Index的算法2、 …...

让AI看见世界:MCP协议与服务器的工作原理

让AI看见世界&#xff1a;MCP协议与服务器的工作原理 MCP&#xff08;Model Context Protocol&#xff09;是一种创新的通信协议&#xff0c;旨在让大型语言模型能够安全、高效地与外部资源进行交互。在AI技术快速发展的今天&#xff0c;MCP正成为连接AI与现实世界的重要桥梁。…...

用机器学习破解新能源领域的“弃风”难题

音乐发烧友深有体会&#xff0c;玩音乐的本质就是玩电网。火电声音偏暖&#xff0c;水电偏冷&#xff0c;风电偏空旷。至于太阳能发的电&#xff0c;则略显朦胧和单薄。 不知你是否有感觉&#xff0c;近两年家里的音响声音越来越冷&#xff0c;听起来越来越单薄&#xff1f; —…...

AGain DB和倍数增益的关系

我在设置一款索尼CMOS芯片时&#xff0c;Again增益0db变化为6DB&#xff0c;画面的变化只有2倍DN的增益&#xff0c;比如10变为20。 这与dB和线性增益的关系以及传感器处理流程有关。以下是具体原因分析&#xff1a; 1. dB与线性增益的换算关系 6dB对应的理论线性增益应为&…...

Linux 内存管理实战精讲:核心原理与面试常考点全解析

Linux 内存管理实战精讲&#xff1a;核心原理与面试常考点全解析 Linux 内核内存管理是系统设计中最复杂但也最核心的模块之一。它不仅支撑着虚拟内存机制、物理内存分配、进程隔离与资源复用&#xff0c;还直接决定系统运行的性能与稳定性。无论你是嵌入式开发者、内核调试工…...

【LeetCode】3309. 连接二进制表示可形成的最大数值(递归|回溯|位运算)

LeetCode 3309. 连接二进制表示可形成的最大数值&#xff08;中等&#xff09; 题目描述解题思路Java代码 题目描述 题目链接&#xff1a;LeetCode 3309. 连接二进制表示可形成的最大数值&#xff08;中等&#xff09; 给你一个长度为 3 的整数数组 nums。 现以某种顺序 连接…...