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

11.string(上)

把text_string1 2声明去掉,定义直接放到text。cpp,用命名空间包一下,

这有个bug,unsiged int 不会小于0,end不会小于0,

、改成int仍然不行

这是手动打断点,当两个操作数类型不一样的时候进行类型提升或者截断,一般让范围小的向范围大的提升,end提升成无符号,就是无限大。

强转一下就不会提升了

这是另一种方式

reserve永远都会多开一个,不需要考虑\0

这三处出错,就算不写len==0,也没事因为-1是最大值,不会进来

要画图

这种情况说明都要删

左闭右开一减就是个数

pos不能给越界的,

void string::erase(size_t pos, size_t len){assert(pos < _size);if (len >= _size - pos){_str[pos] = '\0';_size = pos;}else{for (size_t i = pos + len; i <= _size; i++){_str[i - len] = _str[i];}_size -= len;}}

尽可能保持画图,才能不出错

然后测试一下 find 和这个

报错了

sub拷贝构造临时对象,再拷贝构造,编译器优化了中间的,没有写拷贝构造,这里默认是浅拷贝,出了作用于sub销毁了,suffix是野指针了,这应该用深拷贝,release为啥没问题,和三唯一,把临时对象 优化掉了,把sub也给优化掉了。直接让suffix充当sub了,没有触发这个bug,

我们保证不了编译器优不优化,所以我们要显示提供拷贝构造,

不写赋值默认生成的也是浅拷贝的赋值,还导致s之前的空间直接丢掉了,

还有个小风险,s给s赋值上来就把自己删除了

实现两个就可以,修改比较方式方便,所以用复用

bool operator<(const string& s1, const string& s2){return strcmp(s1.c_str(), s2.c_str()) < 0;}bool operator<=(const string& s1, const string& s2){return s1 < s2 || s1 == s2;}bool operator>(const string& s1, const string& s2){return !(s1 <= s2);}bool operator>=(const string& s1, const string& s2){return !(s1 < s2);}bool operator==(const string& s1, const string& s2){return strcmp(s1.c_str(), s2.c_str()) == 0;}bool operator!=(const string& s1, const string& s2){return !(s1 == s2);}

库里面三个版本,string和string,string和字符串。字符串和字符串而我们只写了一个版本

单参数构造函数支持隐式类型转换,string支持用const字符串构造,可以隐士类型换成string,我这需要构造一个,它不需要,

这个会不会隐式类型转换,不会,运算符重载必须有个类类型参数,常量字符串会被识别成两个指针,被认为是两个指针比较。

http://www.dtcms.com/a/590129.html

相关文章:

  • 【开题答辩全过程】以 基于SpringBoot的智慧教育系统的设计与实现为例,包含答辩的问题和答案
  • 360永久免费建网站网站建设及空间
  • 轻松阅读漫画的利器——Kotatsu漫画阅读器
  • 婚纱外贸网站怎么用PS做珠宝网站
  • 新乡网站网站建设网页制作软件是什么
  • C#权威指南第9课:方法
  • fastjson中的原生反序列化漏洞
  • 网站弹屏广告怎么做的如何修改网站后台的用户名和密码
  • Spring中如何使用@Resource注解?
  • 高频面试八股文用法篇(十二)Java 包装类缓存机制
  • 【Envi遥感图像处理】019:影像自动配准操作
  • 杭州网站开发制作公司排名邹平做网站的公司
  • 做家装的网站classplus wordpress
  • IO接口基本结构与内容
  • 亲爱的redis你好
  • php搭建一个简单的网站做网站服装app
  • C++基于websocket的多用户网页五子棋 --- 认识依赖库
  • YOLOv5,YOLOv8替换激活函数
  • STM32外设学习--ADC模数转换器--笔记
  • 深圳网站开发建设服务公司网站推广软件排名
  • ArkTS多维度状态管理机制
  • 广西建设工程质量监督网站南京seo关键词优化资讯
  • 深圳建站公司有推荐的公司吗济南平台公司
  • 夏普比率和最大回撤公式推导及代码实现
  • win32k!xxxKeyEvent函数里面的win32k!xxxDoHotKeyStuff如何确定是CAD键的到来的
  • 网站建设课我要表白网站在线制作
  • 烟台网站建设 烟台网亿网络公司python培训学校
  • 计算机网络自顶向下方法41——网络层 自治系统内部的路由选择:开放最短路优先(OSPF)设置OSPF链路权值
  • HDFS分布式存储“入门教程“:从“文件上传“到“副本管理“,3步理解核心原理
  • 做网站的人是什么职位个人备案网站建设方案书