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

大庆工程建设公司网站跨境电商网站平台

大庆工程建设公司网站,跨境电商网站平台,做网站哪些软件比较好,手机网站设计公司哪家专业作者的个人gitee▶️ 作者的算法讲解主页 每日一言:“心有繁星,皆为皓月。🌸🌸” 上一章已经对string类进行了简单的介绍,大家只要能够正常使用即可。在面试中,面试官总喜欢让学生自己来模拟实现string类&a…

作者的个人gitee▶️

作者的算法讲解主页

每日一言:“心有繁星,皆为皓月。🌸🌸”

上一章已经对string类进行了简单的介绍,大家只要能够正常使用即可。在面试中,面试官总喜欢让学生自己来模拟实现string类,最主要是实现string类的构造、拷贝构造、赋值运算符重载以及析构函数。

本文就主要针对该部分的源码进行剖析。

string.h

#include<assert.h>
#include<string.h>//重新定义命名空间域以防与标准库冲突
namespace Poeir_
{//封装string类class string{public://迭代器typedef char* iterator;typedef const char* const_iterator;iterator begin();iterator end();const_iterator begin() const;const_iterator end() const;//无参构造string():_str(new char[1]{'\0'}),_size(0),_capacity(0){}//带参构造string(const char* str):_str(new char[strlen(str)+1]),_size(strlen(str))_capacity(strlen(str)){}//上述代码效率不好,因为strlen是一个运行时调用的函数,时间复杂度是O(n)。//字符串越长,时间开销越大,且容易因为声明顺序导致错误。//也不能使用sizeof,因为它是编译时运算,但它只能运算数组,不能运算string。//优化如下:将_str和_capacity放到内部初始化,防止初始化列表容易因为声明顺序导致错误。string(const char* str = ""):_size(strlen(str)){_capacity = _size;_str = new char[_size + 1];strcpy(_str,str);}//返回c风格字符串//const char* c_str() const{return _str;}//析构函数销毁字符串~string (){delete[] _str;_str = nullptr;_size = 0;_capacity = 0;}//size()方法声明size_t size() const;//[]运算符重载声明char& operator[](size_t i);//普通版const char& operator[](size_t i) const;//const版private:char* _str;//_size和_capacity都不包含'\0'size_t _size;size_t _capacity:}
}

string.cpp

#include"string.h"

🔴一.size()方法

size_t string::size() const
{return _size;
}

🔴二.[ ]运算符重载

char& string::operator[](size_t i)
{assert(i < _size);return _str[i];
}
const char& string::operator[](size_t i) const
{assert(i<_size);return _str[i];
}

🔴三.迭代器

begin()

string::iterator string::begin()//普通版
{return _str;//返回首元素地址
}
string::const_iterator string::begin() const  //const版
{return _str;
}

end()

string::iterator string::end()//普通版
{return _str + _size;//返回最后一个元素的地址
}
string::const_iterator string::end() const  //const版
{return _str + _size;
}

如有错误,恳请指正。

http://www.dtcms.com/wzjs/596159.html

相关文章:

  • 木樨园网站建设wordpress密码原理
  • 网站建设共享海南营业执照网上怎么申请
  • 深圳新型材料网站建设加盟创业
  • 普通网站备案wordpress 函数 应用
  • 株洲网站优化找哪家创建公司需要什么条件
  • 织梦 网站名称网站开发书籍推荐
  • 营销网站设计公司排名群辉nas 做网站
  • 青岛建设投资公司网站上海网站备案需要多久
  • 创新创业教育课程网站建设方案自动做网站的ai
  • 沈阳建站模板搭建wordpress 修改语言
  • 大朗网站建设培训宁波企业黄页公司黄页
  • 做外贸哪些网站可以发布产品网站建设是永久使用吗
  • 想开个网站怎么做网站建设优化公司排名
  • 免费ppt成品网站好看的个人网站主页
  • 做消费网站流程试玩平台怎么做网站
  • 现在网站建设需要多少钱折800网站源码
  • 嘉兴网站建设一薇wordpress 伪静态404
  • 网站建设技术实现企业网站开发注册
  • 莱芜公交网站河北网站建设流程
  • 用什么软件来建网站有限责任公司怎么注册
  • 哪个公司网站设计好做物流网站的多少钱
  • 英文公司网站建设wordpress 教程
  • 网易网站开发语言佛山制作网站公司
  • 班级网站 模板ip可以用wordpress
  • 专业网站建设哪家好网络管理系统软件有哪些
  • 淄博网站制作服务推广黄做网站
  • 数码设计网站网页设计教程谁的好
  • 外网工业设计网站龙口建网站首选公司
  • 网站建设脚本语言有哪些什么网站做二手货车
  • 漳州网站建设技术wordpress使用插件下载