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

手机商城网站模板seo优化排名易下拉程序

手机商城网站模板,seo优化排名易下拉程序,南沙企业网站建设,wordpress企业网站源码文章目录 一. string底层逻辑演示声明和定义分开 二. size()三. operator[]四. 迭代器四. const迭代器五. 预留空间#xff08;reserve)六. 尾插一个字符push_back七. 尾插一个字符串append八. operator九. operator 一. string底层逻辑 #xff08;1#xff09;为了和库里面… 文章目录 一. string底层逻辑演示声明和定义分开 二. size()三. operator[]四. 迭代器四. const迭代器五. 预留空间reserve)六. 尾插一个字符push_back七. 尾插一个字符串append八. operator九. operator 一. string底层逻辑 1为了和库里面的string类区分开我们可以使用命名空间hou。之前学习的命名空间就有了价值。 2在类里面的都是内联函数 3对于比较短小的函数直接在类里面写就行。函数大一点将声明和定义分开。 成员变量 #includestdio.h #includestring #includeiostream namespace hou {class string{private:char* _str; //char类型数据数组的地址size_t _size; //有效元素个数size_t _capacity; //空间大小}; }成员函数 任何一个类都从构造函数开始无参/有参 无参的话将三个成员变量初始化为什么呢都初始化为空吗 这样是不可以的。 记得const char*比较特殊cout它不会打印出地址它自动识别类型会以为打印字符串字符串的打印规则是遇到‘\0’才会终止而我们的_str是空指针将空指针解引用肯定是错误的本质是空指针问题 --------------- 所以不能将char*初始化为空。里面起码要放一个\0 namespace hou {class string{public://任何一个类都从构造函数开始string()//先写一个无参的构造函数:_str(new char[1]{\0}),_size(0),_capacity(0){}~string(){delete[] _str;_str nullptr;_size 0;_capacity 0;}const char* c_str()const{return _str;}private:char* _str; //char类型数据数组的地址size_t _size; //有效元素个数size_t _capacity; //空间大小}; }刚刚写了无参的构造函数接下来写一个有参的构造函数 注意点 strlen计算长度时不包括\0strlen是在运行时计算的size是编译时计算的在初始化列表里写它的初始化顺序是按照声明的顺序来的 之前我们说过尽可能使用初始化列表但是strlen是在运行时计算的要计算3次效率低。这样子的话我们可以将strlen先计算出来之后用。但记住初始化列表的顺序是按照声明的顺序。 演示声明和定义分开 当我们想把声明写在.h里面定义写在.cpp里面的时候 这样写会报错所以我们需要在string.cpp里1写上类域2再写一下命名空间 一个命名空间是可以写多个的多个文件的同一个命名空间会被合并为(认为)一个命名空间的 已经声明和定义了还有一个需要注意的内容是缺省值只能在声明的时候给定义那里不可以写缺省值。但是char* _str的缺省值不可以是nullptr可以给一个\0或者直接“”字符串默认后面会加\0的 二. size() 对象.size()就是为了得到对象的大小即对象的有效元素个数 如果声明和定义分开写了同时这个函数有返回值那string::加到哪里呢 三. operator[] string.cpp里面的内容 char string::operator[](size_t i) {return _str[i]; }四. 迭代器 string的迭代器string的物理结构是数组 using iterator char*; //typedef char* iterator;迭代器还需要配合begin()和end()(begin()就是返回开始位置的迭代器 using iterator char*; iterator string::begin() {return _str; }iterator string::end() {return _str_size; }范围for的底层是迭代器支持迭代器则支持范围for 四. const迭代器 五. 预留空间reserve) 本质就是扩容但是这种提高了效率原本需要2倍2倍的扩但是当你知道需要多大的空间时就可以一次性扩容好。 reserve一般不缩容我们需要先判断一下想扩容的大小n是否比_capacity大开空间的时候永远要多开一个因为’\0‘是不计入_capacity的 void string:: reserve(size_t n){if (n _capacity){char* tmpnew char[n1];strcpy(tmp, _str);delete[]_str;_str tmp;_capacity n; //\0不计入空间大小}}六. 尾插一个字符push_back void string::push_back(char ch) {//先判断空间大小是否足够if (_size _capacity){//不够的话进入if语句进行扩容reserve(_capacity 0 ? 4 : 2 * _capacity);}_str[_size] ch;_size; }七. 尾插一个字符串append void string::append(const char* str){size_t len strlen(str);size_t newcapacity 2 * _capacity _size len ? _size len : 2 * _capacity;reserve(newcapacity);//开好空间之后插入字符串strcpy(_str_size, str);//直接复制(第一个参数是复制到哪里(位置),第二个是被复制的串_size len;}八. operator string string:: operator(char ch) {push_back(ch);return *this; } 九. operator string string:: operator(const char* str) {append(str);return *this; }
http://www.hkea.cn/news/14468387/

相关文章:

  • 暖色调网站欣赏wordpress 播放大视频播放
  • 淄博北京网站建设天河区门户网站官网
  • 手机能看的网站装修网站建设摘要
  • 网站建设管理考核办法注册公司注册资金要实缴吗
  • 网站如果不备案吗做电影网站收入
  • 网站推广营销收费网址大全实用网址
  • 网站建设合同附件wordpress 弹窗注册登录
  • 秦皇岛网站关键词推广贵州企业网站开发公司
  • 有什么做h5的网站wordpress 无广告视频
  • 企业网站建设费用入哪个科目泉州网站建设方案维护
  • 做网站运营如何提升用户粘度网站网站开发逻辑
  • 外包项目网站seo报告
  • 手机网站模板 优帮云wordpress 说明手册
  • 网站推广策划报告wordpress 自动汉化
  • 网站的建设步骤有哪些沈阳网站建设公司哪个好
  • 网站如何做优化推广空包网站分站怎么做
  • 网站制作 php全国信息网查询平台
  • 下载专门做初中数学题的网站邯郸匿豪网络科技有限公司
  • 有自己的域名怎么建立网站网站备案账号密码
  • 微信小程序自己制作网站优化一般怎么做
  • 怎么做同城购物网站备案号放网站下面居中
  • seo网站诊断文档案例网站页面确认书
  • 淘宝客网站建设任务晋城网络公司做网站的
  • 网站建设友情链接怎样交换群辉wordpress端口
  • wordpress易语言网站优化的监测评估
  • 个人建什么样的网站开源cms框架
  • 电影视频网站怎么做你买域名我送网站
  • 公司申请网站建设的工作方案手机网页编辑器中文版
  • 兴义市住房城乡建设局网站小说网站风格
  • 自己做网站需要服务器凡客精选