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

C++(day4)

思维导图

封装Mystring

#include <iostream>
#include<cstring>using namespace std;class Mystring{
public://无参构造函数Mystring():size(10){str=new char[size];strcpy(str,"");cout<<"无参构造函数"<<endl;}//有参构造函数Mystring(const char *s){size=strlen(s);str=new char[size+1];strcpy(str,s);cout<<"有参构造函数"<<endl;}//拷贝构造函数Mystring(const Mystring &other){this->size=other.size;this->str=new char[this->size];strcpy(this->str,other.str);cout<<"拷贝构造函数"<<endl;}//析构函数~Mystring(){delete []str;cout<<"析构函数"<<endl;}//拷贝赋值函数Mystring &operator=(const Mystring &other){if(this!=&other){this->size=other.size;strcpy(this->str,other.str);}cout<<"拷贝赋值函数"<<endl;return *this;}//判空函数bool empty()const{return !strlen(this->str);}//size函数int strsize()const{return strlen(this->str);}//c_str函数char *c_str(){return this->str;}//at函数char &at(int pos){return *(this->str+pos-1);}//加号运算符重载Mystring operator+(const Mystring &R)const{Mystring temp;strcat(temp.str,this->str);strcat(temp.str,R.str);return temp;}//加等于运算符重载Mystring &operator+=(const Mystring &R){strcat(this->str,R.str);return *this;}//关系运算符重载(>)bool operator>(const Mystring &R)const{if(strcmp(this->str,R.str)>0){return true;}else{return false;}}//中括号运算符重载char &operator[](int pos)const{return *(this->str+pos-1);}//展示函数void show(){cout<<str<<endl;}
private:char *str;  //字符串首地址int size;   //字符串大小
};int main()
{Mystring str1("hello");str1.show();Mystring str2("world");str2.show();Mystring str3;if(str3.empty()){cout<<"str3现在为空,字符串长度为"<<str3.strsize()<<endl;}str3=str1;str3.show();if(!str3.empty()){cout<<"str3现在不为空,字符串长度为"<<str3.strsize()<<endl;}Mystring str4=str2;str4.show();str4+=str3;str4.show();cout<<"str4字符串第7位是"<<str4.at(7)<<",str4字符串第13位是"<<str4[13]<<endl;cout<<str4.c_str()<<endl;if(str3>str2){cout<<"str3>str2"<<endl;}else{cout<<"str3<str2"<<endl;}return 0;
}

相关文章:

C++(day4)

思维导图 封装Mystring #include <iostream> #include<cstring>using namespace std;class Mystring{ public://无参构造函数Mystring():size(10){strnew char[size];strcpy(str,"");cout<<"无参构造函数"<<endl;}//有参构造函数…...

docker 部署 node.js(express) 服务

1、在 express 项目根目录下新增 Dockerfile 文件&#xff0c;内容如下&#xff1a; 创建服务容器的方法&#xff0c;可以根据自己的情况选择&#xff1a; 1、以下示例为宿主机没有安装 node 环境的写法&#xff1b; 2、先在本地构建包含 node 和 express 的基础镜像&#xff0…...

商城系统开发,如何确保用户数据的安全性?

确保用户数据的安全性是商城系统开发中至关重要的一项任务。随着数字化时代的到来&#xff0c;用户的个人信息和交易数据已成为黑客和不法分子的重要目标&#xff0c;因此保护用户数据的安全性对于商城系统的成功运营至关重要。在开发商城系统时&#xff0c;以下几个方面是确保…...

黑客必备工具Kali Linux,安装与使用教程全包含,从入门到精通,全网最详细全面的Kali Linux教程

Kali Linux是一个高级渗透测试和安全审计Linux发行版&#xff0c;目前可以说是网络安全人员的专用系统。 Kali Linux功能非常强大&#xff0c;能够进行信息取证、渗透测试、攻击WPA / WPA2保护的无线网络、离线破解哈希密码、将android、Java、C编写的程序反编译成代码等等&am…...

2024滴滴校招面试真题汇总及其讲解(二)

4.【基础题】HashMap了解吗?介绍一下它对应的线程安全版本。 HashMap 是 Java 中一种键值对映射的集合,它使用哈希表来存储键值对。HashMap 具有插入和删除元素效率高的优势,但不是线程安全的。 ConcurrentHashMap 是 Java 中一种线程安全的 HashMap,它使用分段锁来保证线…...

嵌入式-C语言中的if语句

目录 一.if语句介绍 二.案例实操 2.1C语言运行模板代码 2.2运行方法 2.3案例 一.if语句介绍 if判断语句是一种用于根据条件来进行条件分支的控制流语句。通过判断一个条件的真假来决定执行不同的代码块。if语句的基本语法如下&#xff1a;if (条件表达式) {// 如果条件为…...

组合数 rust解法

组合数。 编写函数&#xff0c;参数是两个非负整数n和m&#xff0c;返回组合数 C n m C_n^m Cnm​&#xff0c;其中m≤n≤25。 例如&#xff0c;n25&#xff0c;m12时答案为5200300。 解法&#xff1a; fn c(n: u32, m: u32)->u64 {let m if m > n-m {n-m}else{m};le…...

【SpringMVC】自定义注解与AOP结合使用

目录 一、SpringMVC之自定义注解 1.1 Java注解简介 1.2 为什么要用注解 1.3 注解的分类 ⭐ 1.3.1 JDK基本注解 1.3.2 JDK元注解 1.3.3 自定义注解 1.4 自定义注解三种使用案例 1.4.1 案例一&#xff08;获取类与方法上的注解值&#xff09; 1.4.2 案例二&#xff0…...

MyEclipse 用tomcat部署SSM项目后,项目名称和当前项目不一致

MyEclipse 用tomcat部署SSM项目后&#xff0c;项目成功启动&#xff0c;但是访问所有接口报404 从这里可以看到&#xff0c;部署的项目名为accurate_sugar_control_yc_api&#xff0c;但实际我们项目名字应该为accurate_sugar_control_otc_api 解决办法 在本地找到项目的根目…...

来喽!!炒鸡详细的“数据在内存中的存储”真的来喽!

目录​​​​​​​ 1. 整数在内存中的存储 1.1 ⼆进制介绍 1.1.1 2进制转10进制 1.1.2 10进制转2进制 1.1.3 2进制转8进制 1.1.4 2进制转16进制 1.2 原码、反码、补码 2. ⼤⼩端字节序和字节序判断 2.1 什么是⼤⼩端&#xff1f; 2.2 为什么有⼤⼩端? 2.3 练习 …...

【面试经典150 | 双指针】验证回文串

文章目录 写在前面Tag题目来源题目解读解题思路方法一&#xff1a;筛选判断方法二&#xff1a;原地判断 知识回顾回文串双指针字符串操作 写在最后 写在前面 本专栏专注于分析与讲解【面试经典150】算法&#xff0c;两到三天更新一篇文章&#xff0c;欢迎催更…… 专栏内容以分…...

sql存储引擎

-- 查询建表语句 --可以查看引擎 show create table account; -- 可以看到默认引擎 InnoDB ENGINEInnoDB -- 查看当前数据库支持得存储引擎 show engines ; # InnoDB 默认 存储引擎 # MyISAM sql早期默认 存储引擎 # MEMORY 存储在内存中 用来做临时表和缓存 存储引擎 …...

Visual Studio 2022安装SVN插件教程

1. 第一步&#xff1a;避免踩坑&#xff0c;超级重要&#xff01;&#xff01;&#xff01;关闭Visual Studio 2022应用程序&#xff1b;&#xff08;不然插件装不上&#xff0c;一直转圈&#xff01;&#xff09; 2.第二步&#xff1a;下载Visual Studio 2022版本对应的SVN插件…...

【PyCharm Community Edition】:串口开发

串口开发 安装模块&#xff1a;pyserial端口检查&#xff1a;uartDevice自定义文件&#xff1a;SerialMonitor.py导入自定义文件&#xff1a;SerialMonitor.py延伸阅读 安装模块&#xff1a;pyserial Pyserial 是 Python 中使用串口通信的一个第三方库&#xff0c;使用它可以方…...

亲测可用!!!Centos7安装chrome+chromedriver以便实现selenium自动化详细教程

网上很多教程都是在线安装chrome&#xff0c;这样安装了最新稳定的chrome&#xff0c;可惜我遇到chromdriver的版本跟上 chrome&#xff0c;为了早日实现在centos服务selenium自动化&#xff0c;不可能去等待 chromdriver 更新&#xff0c;只能 chrome进行降版本来离线安装。花…...

spring cloud、gradle、父子项目、微服务框架搭建---cloud gateway(十)

总目录 https://preparedata.blog.csdn.net/article/details/120062997 文章目录 总目录一、简介二、order、pay服务 配置context-path三、新建gateway网关服务&#xff08;1&#xff09; 启动类添加 SpringCloudApplication 即可&#xff08;2&#xff09; application.yml 配…...

AD22使用笔记+积累库

一、前言 使用AD9习惯了&#xff0c;但是需求逐渐上来了就不够用了&#xff0c;好多快捷的新功能要新版本软件才能用&#xff0c;所以升级使用AD22 目录 1.添加层之后中间层无法布线 2.新增快捷方式CtrlW布线&#xff0c;不用点图标了 二、环境 AD22 三、正文 1.添加层之…...

20230912在ubuntu18.04下使用pigz来提高tar命令压缩解压缩的速度

20230912在ubuntu18.04下使用pigz来提高tar命令压缩解压缩的速度 2023/9/15 22:19 https://blog.csdn.net/wb4916/article/details/128447298 20221226编译Toybrick的TB-RK3588X开发板的Android12系统2-SDK预处理 4、单线程压缩。 建议使用&#xff1a;pigz多线程压缩&#xf…...

python-xpath语法-爬取彼岸图4k高清动漫壁纸

安装 pip install lxml导入 from lxml import etreexpath使用路径表达式提取html文档中的元素或元素集&#xff0c;然后元素通过沿路径path或步steps来选取数据 XPath常用语法格式 表达式描述div选取div元素的所有子元素/div选取根元素divul//li选取ul元素下的所有li子元素…...

韩信点兵:求韩信一共有多少兵

任务描述 本关任务&#xff1a;求韩信一共有多少兵。 韩信有一队兵&#xff0c;他想知道有多少人&#xff0c;便让士兵排队报数。 按从 1 至5报数&#xff0c;最末一个士兵报的数为 1&#xff1b; 按从 1 至 6 报数&#xff0c;最末一个士兵报的数为 5&#xff1b; 按从 1 …...

基于FreeRTOS与LVGL的智能手表开源系统InfiniTime开发指南

1. 项目概述&#xff1a;为你的智能手表注入灵魂 如果你手上有一块PineTime或者类似的低功耗智能手表&#xff0c;并且对官方固件那有限的功能感到意犹未尽&#xff0c;那么“InfiniTime”这个名字你应该不会陌生。它不是一个简单的应用商店&#xff0c;而是一个为这类开源硬件…...

2026健康一体机生产厂家选型与厂商能力全景分析

2026健康一体机生产厂家选型与厂商能力全景分析健康一体机是一种集多项健康检测与管理功能于一体的智能终端设备&#xff0c;可快速完成身高、体重、血压、血糖、血氧、心率、心电、体温、BMI、脂肪含量、基础代谢率等基础体征测量。设备支持数据自动记录、建档、上传与智能分析…...

局域网监控软件评测:从数据主权视角看企业效能工具的取舍

很多管理者在巡视办公室时&#xff0c;看到员工手指在键盘上飞速跳动&#xff0c;屏幕上代码或表格交织&#xff0c;心中却往往悬着一块石头&#xff1a;他们是在攻克项目难关&#xff0c;还是在处理私人兼职&#xff1f;这种管理上的“黑盒状态”&#xff0c;不仅是效率的损耗…...

Fulling框架:构建完整AI智能体的工程化实践指南

1. 项目概述&#xff1a;从“FullAgent”到“Fulling”的智能体进化之路最近在开源社区里&#xff0c;一个名为“Fulling”的项目引起了我的注意。它隶属于“FullAgent”这个组织&#xff0c;名字本身就很有意思。“Fulling”这个词&#xff0c;在英语里有“使…丰满、充实”的…...

Docker部署Unifi控制器:从环境隔离到设备管理的完整实践

1. 项目概述&#xff1a;为什么选择Docker部署Unifi控制器&#xff1f;如果你和我一样&#xff0c;折腾过Ubiquiti&#xff08;优倍快&#xff09;的全家桶&#xff0c;大概率会对那个官方的硬件控制器——Cloud Key——又爱又恨。爱的是它开箱即用&#xff0c;把Unifi Network…...

如何在3分钟内实现iOS设备虚拟定位?iFakeLocation实战指南

如何在3分钟内实现iOS设备虚拟定位&#xff1f;iFakeLocation实战指南 【免费下载链接】iFakeLocation Simulate locations on iOS devices on Windows, Mac and Ubuntu. 项目地址: https://gitcode.com/gh_mirrors/if/iFakeLocation 在iOS应用开发与测试中&#xff0c;…...

开源协作平台Polar:一体化设计如何重塑开发者工作流

1. 项目概述&#xff1a;一个面向开发者的开源协作平台最近在和一些独立开发者朋友聊天时&#xff0c;大家普遍提到一个痛点&#xff1a;当你想启动一个开源项目&#xff0c;或者和几个朋友一起搞点小东西时&#xff0c;整个协作流程其实挺割裂的。代码托管在GitHub或GitLab&am…...

量子计算中CV-DV混合门集原理与应用

1. 量子计算中的CV-DV门集基础在混合量子系统中&#xff0c;连续变量(CV)和离散变量(DV)门集的协同工作为量子算法设计提供了独特优势。CV系统通常由量子谐振荡器实现&#xff0c;其状态存在于无限维希尔伯特空间中&#xff0c;而DV系统则以量子比特为基本单元。这两类系统的结…...

AI自动化新范式:基于MCP协议实现飞书与AI助手深度集成

1. 项目概述与核心价值如果你和我一样&#xff0c;每天的工作都离不开飞书&#xff0c;那你肯定也遇到过这样的场景&#xff1a;想用AI助手帮你整理会议纪要、自动更新项目文档&#xff0c;或者根据Bitable里的数据生成周报&#xff0c;却发现AI只能“看”不能“动”。它理解你…...

构建高效AI学习伙伴:从系统提示词到结构化交互设计

1. 项目概述&#xff1a;一个为学习者量身定制的AI交互模式最近在GitHub上看到一个挺有意思的项目&#xff0c;叫“learner-ai-mode”。光看名字&#xff0c;你可能会觉得这又是一个普通的AI应用或者学习工具。但当我深入去研究它的代码和设计理念后&#xff0c;发现它其实指向…...