C++ String类编写

2023-11-08

1. h文件

#ifndef _STR_H_
#define _STR_H_
#include <iostream>
using namespace std;

class String
{
public:
    String();                           //默认构造函数
    String(const char*s);         //普通构造函数
    String(const String& s);            //复制构造函数
    String& operator=(char* s);         //重载=,实现字符串赋值
    String& operator=(const String& s); //重载=,实现对象赋值
    ~String();                         //析构函数
    char& operator[](int i);            //重载[],实现数组运算
    const char& operator[](int i) const;    // 重载[],实现数组运算,对象为常量
	String&operator+(const String& s);
    String& operator+=(const String& s);    //重载+=,实现与对象相加
    String& operator+=(const char* s);      //重载+=,实现与字符串相加
    friend ostream& operator<<(ostream& out, String& s);    //重载<<
    friend istream& operator>>(istream& in, String& s);     //重载>>
    friend bool operator<(const String& left, const String& right);     //重载<
    friend bool operator>(const String& left, const String& right);     //重载>
    friend bool operator==(const String& left, const String& right);    //重载==
    friend bool operator!=(const String& left, const String& right);    //重载!
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C++ String类编写 的相关文章

  • 2018老男孩脱产班linux运维51期

    2018老男孩脱产班linux运维51期 2018老男孩脱产班linux运维51期 2018老男孩脱产班linux运维51期 2018老男孩脱产班linux运维51期 链接 https pan baidu com s 1bnIJF6IoBC
  • Linux网络配置实验

    Linux的网络配置分为两种 手动和自动 下面我们先配置好Linux外面的设置 后面再去终端用命令行配置 框起来的网址记住 后面要用上 这里开始打开终端 用命令行配置 这是手动配置的 将前面记下来的网址适当填入对应的位置 对照这种图稍作修改
  • PBFT(拜占庭容错)

    PBFT 拜占庭容错 基于拜占庭将军问题 一致性的确保主要分为这三个阶段 预准备 pre prepare 准备 prepare 和确认 commit 流程如下图所示 其中C为发送请求端 0123为服务端 3为宕机的服务端 具体步骤如下 1
  • MySQL数据库查询默认是按什么进行排序的

    文章中所有操作均是在 MySQL 5 7 版本下进行的 引入问题 MySQL 普通查询它是按照什么进行排序的 我们稍微讨论下这个问题 我们先引入一个测试表 drop table if exists tbl test create table
  • Swagger 整合 Spring Boot

    title Swagger 整合 Spring Boot date 2021 10 1 tags spring springboot swagger categories spring springboot Swagger 整合 Sprin
  • Relation-Aware Global Attention for Person Re-identification (cvpr2020)

    首先这是一篇科大和微软亚研院的文章 文章很优美 非常值得一阅 本文主要是针对行人重识别提出一种从局部之间的关系找到相关性从而生成注意力的方法 可以理解成继承 Non local 或者 self attention 的方法 虽然理念相似 这些
  • 【css】css3动画实现鼠标悬停按钮动画

    html a href span span Button a css body margin 0 padding 0 font family sans serif a position absolute top 50 left 50 tra
  • 【20201023期AI简报】OpenCV 4.5 发布、NVIDIA开源NeMo,更多精彩点我!

    导读 本期为 AI 简报 20201023 期 将为您带来过去一周关于 AI 新闻 12 条 其他互联网圈内新闻10 条 希望对您有所帮助 有更好的建议或者意见请在下方留言 AI 1 OpenCV 4 5 发布 DNN 模型在 ARM 平台
  • 数据库表的各种连接(内连接,外连接)

    关系型数据库 以关系代数为理论基础 1 用表 Table 表示关系或者实体 2 用行 Row 表示元组 3 用列 Col 表示属性 关系代数包含以下8个关系运算符 单表操作 1 选取 返回满足指定条件的行 2 投影 从数据集合中返回指定的列
  • Vue和React的优缺点

    Vue和React是目前最流行的前端框架之一 它们都有自己的优点和缺点 在这篇文章中 我将会详细介绍Vue和React的优缺点 并给出一些建议 帮助你选择适合自己的框架 一 Vue的优点 1 简单易学 Vue的语法简单易懂 学习曲线较为平缓
  • 关于U盘制作启动盘后内存变小问题的解决

    不需任何工具 只需要输入几个简单命令即可 1 U盘插入电脑然后运行windows的命令窗口 命令窗口打开方式win R后输入 cmd或点击开始菜单 gt gt 运行 gt gt 输入cmd 2 在命令行输入diskpart然后回车 如图所示
  • 爬虫爬取mp3文件例子

    相信训练模型时数据集的获取也是一个很头疼的事情 搞cv领域的可以扛着摄像头架起三脚架拍摄获取 以前干过 但是如果是nlp领域的呢 特别是chatgpt等大模型出来后对这类文本等数据的需求更大 如果没有现成的数据集的话基本上很难自己创造数据
  • vue自定义指令实现按钮鉴权

    vue中提供了创建自定义指令api directives 一般接口返回权限表如下 在路由守卫中用户登录情况下获取权限 并提交mutations存储在 vuex中 ajax获取菜单数据 let menuList permissions awa
  • vant+vue3+ts 的滑块验证

    vant vue3 ts 的滑块验证 效果图
  • SpringBoot可执行包结构

    相对于传统的JAVA可执行包 jar文件 SpringBoot的包结构有比较大的不一样 标准的JDK定义的jar文件里面是不能够有内嵌jar文件的 所以通常我们在执行一个jar文件里面的应用程序时 还需要通过 classpath来告诉JDK
  • Atcoder beginner contest 303

    A Similar String AC代码 include
  • 动物森友会【科大讯飞杯L题】【二分答案+最大流】

    题目链接 有N个物品 一周有7天 然后呢 要对应的每个物品都要达到各自的需求数量 于是问 最少需要几天才可以达到要求 很明显的 这是线性关系的 我们可以用二分答案来解决这个问题 然后呢怎么知道是否满足条件也就是来确定的 要满足每个物品都要拿
  • [Unity3D]第一人称角色控制器

    Unity3D 最简单最详细的第一人称角色控制器 自学Unity3D有一段时间了 一直想弄一个第一人称角色控制器 网上还是有很多教程和资料 但感觉有很多教程和资料理解起来比较复杂 在这里我结合网上所学的知识自己写了一个比较容易理解的Unit
  • python爬虫归纳_【知识归纳】史上最全的Python爬虫抓取技巧总结

    原标题 知识归纳 史上最全的Python爬虫抓取技巧总结 一 最基本的抓站 import urllib2 content urllib2 urlopen http XXXX read 二 使用代理服务器 这在某些情况下比较有用 比如IP被封

随机推荐

  • Java-代码审核CodeReview要点总结

    1 颗粒度划分要细 例如 当分组循环一个请求一个服务时 如果其中的一个请求抛出异常 应该在catch中捕获 记录错误日志 让循环继续进行 2 非空判断和边境检查 对数组和集合的判断 对map的key值判断 对list的值得判断 3 错误码和
  • Python中list转换为numpy数组出现的问题

    问题为 现有的数据list LuKou train DF KnownCameraTrajec 是一个1000000 30的list数据类型 使用np array list LuKou train DF KnownCameraTrajec 转
  • Installed Build Tools revision 31.0.0 is corrupted. Remove and install again using the SDK Manager

    在最近创建新项目时遇到如题的错误 在重新删除build tools 31版本后还是报错 其实不需要将SDK构建工具从31降为30或更改编译SDK版本 主要问题是SDK build tools31 缺少两个文件 dx bat dx jar 解
  • 记一次SpringBoot项目的Invalid bound statement (not found)错误

    目录 一 前言 二 解决方案 1 第一种 语法错误 2 第二种 编译错误 3 第三种 配置错误 4 第四种 粗心大意 三 写在后面 一 前言 今天写项目的过程中突然报错 Invalid bound statement not found 百
  • 项目启动报错信息:java.lang.NoClassDefFoundError: org/apache/commons/el/Logger

    注 仅供参考 个人运行项目时遇到的问题和解决方案 希望可以给大家带来一丢思路 并非普适性 问题描述 启动tomcat时报错 项目未运行成功 具体报错 十月 18 2021 9 10 11 下午 org apache catalina cor
  • Fmask算法——影像云检测算法

    总结Fmask算法的学习资料 1 经典论文 1 Object based cloud and cloud shadow detection in Landsat imagery 2 Improved cloud and cloud shad
  • 如何建立异地容灾备份体系

    GB T22239 2019 信息安全技术 网络安全等级保护基本要求 即等保2 0 已于2019 12 1 正式实施 其中第二级安全通用要求 应提供异地数据备份功能 利用通信网络能将重要数据定时批量传送至备用场地 第四级安全通用要求 应建立
  • Matlab画图 常用功能及属性设置脚本

    一 plot使用脚本 常规设置 1 线型 颜色 宽度 2 legend 字体 字号 位置 3 label 字体 字号 4 title 字体 字号 加粗 5 gca 边框宽度 坐标轴字体 坐标轴范围 网格 x linspace 0 2 pi
  • 万字长文详解特斯拉自动驾驶体系(感知/规控/标注/仿真)

    作者 和君 编辑 禾隐记 点击下方卡片 关注 自动驾驶之心 公众号 ADAS巨卷干货 即可获取 点击进入 自动驾驶之心 全栈算法 技术交流群 汽车革命的上半场是电动化 下半场是智能化 电动化只是改变了汽车的动力供给方式 并没有改变汽车的性质
  • ElasticSearch系列十二:掌握ES使用Java API

    一 Java连接ElasticSearch6 x版本 可整合到spring中
  • 洛谷 P1885 Moo

    P1885 Moo 题目描述 奶牛Bessie最近在学习字符串操作 它用如下的规则逐一的构造出新的字符串 S 0 moo S 1 S 0 m ooo S 0 moo m ooo moo moomooomoo S 2 S 1 m oooo S
  • AcWing 1381. 阶乘

    题目 N 的阶乘 记作 N 是指从 1 到 N 包括 1 和 N 的所有整数的乘积 阶乘运算的结果往往都非常的大 现在 给定数字 N 请你求出 N 的最右边的非零数字是多少 例如 5 1 2 3 4 5 120 所以 5 的最右边的非零数字
  • 安全开发-JS应用&原生开发&JQuery库&Ajax技术&加密编码库&断点调试&逆向分析&元素属性操作

    文章目录 JS原生开发 文件上传 变量 对象 函数 事件 JS导入库开发 登录验证 JQuery库 Ajax技术 JS导入库开发 编码加密 逆向调试 JS原生开发 文件上传 变量 对象 函数 事件 1 布置前端页面 2 JS获取提交数据 3
  • 超详细Hyperledger Fabric2.3.3开发教程

    最近一直在总结Hyperledger Fabric的开发教程 主要包括 1 什么是Hyperledger 区块链 Hyperledger Fabric 01 超级账本介绍 2 Fabric 2 3 3安装教程 区块链 Hyperledger
  • LeetCode 15. 三数之和

    文章目录 1 排序 双指针 2 对上面代码加剪枝 题目链接 https leetcode cn problems 3sum 1 排序 双指针 思路如下 对数组进行排序 枚举第一个数 n u m s i
  • Vue的生命周期

    推荐一些文章 超详细vue生命周期解析 详解 vue生命周期 vue之生命周期 详细 vue生命周期钩子函数详解 Vue生命周期 11个钩子函数
  • 流媒体传输协议详解之---RTSP认证

    Rtsp认证主要分为两种 基本认证 basic authentication 和摘要认证 digest authentication 基本认证是http 1 0提出的认证方案 其消息传输不经过加密转换因此存在严重的安全隐患 摘要认证是htt
  • 刷脸支付大战的气氛弥漫各处

    人工智能 关于移动支付 这些或新或老的名词 再一次随着产品的落地冲入人们的眼前 从外观上看 这台机器不过iPad大小 似乎平平无奇 但实际使用起来却异常轻松 在香港国际机场1号客运大厅Duty Zero免税店里 智东西记者看到 顾客只要把脸
  • 评估计算recall、precision、AP、F1、mAP(PyTorch-YOLOv3代码解析二)

    目标检测评估计算 utils py 代码github地址 https github com eriklindernoren PyTorch YOLOv3 1 检测的评估函数 reference https github com erikli
  • C++ String类编写

    1 h文件 ifndef STR H define STR H include