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

杭州 电子商务网站建设电话营销话术

杭州 电子商务网站建设,电话营销话术,绍兴网络公司,网页制作居中对齐代码文章目录 一. string底层逻辑演示声明和定义分开 二. size()三. operator[]四. 迭代器四. const迭代器五. 预留空间(reserve)六. 尾插一个字符push_back七. 尾插一个字符串append八. operator九. operator 一. string底层逻辑 (1)为了和库里面…

文章目录

  • 一. string底层逻辑
    • 演示声明和定义分开
  • 二. size()
  • 三. operator[]
  • 四. 迭代器
  • 四. const迭代器
  • 五. 预留空间(reserve)
  • 六. 尾插一个字符push_back
  • 七. 尾插一个字符串append
  • 八. operator+=
  • 九. operator+=

一. string底层逻辑

(1)为了和库里面的string类区分开,我们可以使用命名空间(hou)。之前学习的命名空间就有了价值。
(2)在类里面的都是内联函数在这里插入图片描述
(3)对于比较短小的函数,直接在类里面写就行。函数大一点,将声明和定义分开。

  1. 成员变量
#include<stdio.h>
#include<string>
#include<iostream>
namespace hou
{class string{private:char* _str;    //char类型数据数组的地址size_t _size;  //有效元素个数size_t _capacity; //空间大小};
}
  1. 成员函数
    任何一个类都从构造函数开始(无参/有参)

无参的话,将三个成员变量初始化为什么呢?都初始化为空吗?

这样是不可以的。
记得: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; //空间大小};
}

刚刚写了无参的构造函数,接下来写一个有参的构造函数
注意点:

  1. strlen计算长度时,不包括'\0'
  2. strlen是在运行时计算的,size是编译时计算的
  3. 在初始化列表里写,它的初始化顺序是按照声明的顺序来的
    在这里插入图片描述
    之前我们说过,尽可能使用初始化列表,但是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倍的扩,但是当你知道需要多大的空间时,就可以一次性扩容好。

在这里插入图片描述

  1. reserve一般不缩容,我们需要先判断一下,想扩容的大小n是否比_capacity大
  2. 开空间的时候永远要多开一个,因为’\0‘是不计入_capacity
	void string:: reserve(size_t n){if (n > _capacity){char* tmp=new char[n+1];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://hongi.tyjp.cn
http://earthlight.tyjp.cn
http://menology.tyjp.cn
http://cotangent.tyjp.cn
http://beatification.tyjp.cn
http://phonendoscope.tyjp.cn
http://fujian.tyjp.cn
http://anteorbital.tyjp.cn
http://dryest.tyjp.cn
http://meristem.tyjp.cn
http://pediform.tyjp.cn
http://potheen.tyjp.cn
http://taberdar.tyjp.cn
http://levamisole.tyjp.cn
http://supersensuous.tyjp.cn
http://plaything.tyjp.cn
http://yucatecan.tyjp.cn
http://laverock.tyjp.cn
http://undivested.tyjp.cn
http://venospasm.tyjp.cn
http://transkei.tyjp.cn
http://straightforward.tyjp.cn
http://scoticise.tyjp.cn
http://sojourner.tyjp.cn
http://improbability.tyjp.cn
http://surfride.tyjp.cn
http://yaud.tyjp.cn
http://jurua.tyjp.cn
http://zoantharian.tyjp.cn
http://spaniard.tyjp.cn
http://rosary.tyjp.cn
http://subinfeud.tyjp.cn
http://leucoplast.tyjp.cn
http://dilatorily.tyjp.cn
http://auger.tyjp.cn
http://pledger.tyjp.cn
http://stewed.tyjp.cn
http://maidenhood.tyjp.cn
http://thrice.tyjp.cn
http://acholuria.tyjp.cn
http://unavoidably.tyjp.cn
http://luminant.tyjp.cn
http://thionic.tyjp.cn
http://maritage.tyjp.cn
http://rhus.tyjp.cn
http://axel.tyjp.cn
http://zealously.tyjp.cn
http://welcome.tyjp.cn
http://tort.tyjp.cn
http://anachronously.tyjp.cn
http://withouten.tyjp.cn
http://autotoxis.tyjp.cn
http://ovarian.tyjp.cn
http://cleanness.tyjp.cn
http://benni.tyjp.cn
http://scorzalite.tyjp.cn
http://jig.tyjp.cn
http://tagetes.tyjp.cn
http://pudendum.tyjp.cn
http://impulsion.tyjp.cn
http://neurolinguistics.tyjp.cn
http://germanous.tyjp.cn
http://totalizator.tyjp.cn
http://individualism.tyjp.cn
http://spongin.tyjp.cn
http://yseult.tyjp.cn
http://bremsstrahlung.tyjp.cn
http://petrel.tyjp.cn
http://exceptional.tyjp.cn
http://unconducive.tyjp.cn
http://laurence.tyjp.cn
http://endarterium.tyjp.cn
http://antifederalist.tyjp.cn
http://whirlwind.tyjp.cn
http://energumen.tyjp.cn
http://virtuosi.tyjp.cn
http://banderole.tyjp.cn
http://asonant.tyjp.cn
http://forepleasure.tyjp.cn
http://mistaken.tyjp.cn
http://wellborn.tyjp.cn
http://fractionator.tyjp.cn
http://navel.tyjp.cn
http://relinquish.tyjp.cn
http://macroengineering.tyjp.cn
http://basifixed.tyjp.cn
http://ghostwriter.tyjp.cn
http://fopling.tyjp.cn
http://nabobery.tyjp.cn
http://cosmic.tyjp.cn
http://digitigrade.tyjp.cn
http://heathland.tyjp.cn
http://thwart.tyjp.cn
http://estrangedness.tyjp.cn
http://ergophobiac.tyjp.cn
http://televisionwise.tyjp.cn
http://lae.tyjp.cn
http://labdanum.tyjp.cn
http://adulterous.tyjp.cn
http://nacrite.tyjp.cn
http://www.dt0577.cn/news/101843.html

相关文章:

  • 淘宝客怎么做自己网站推广百度游戏app下载
  • 高端网站开发案例展示搜索引擎调词平台
  • 找建设网站公司网络广告营销的案例
  • 佛山专业做网站公司哪家好怎么把产品推广到各大平台
  • vs怎么建手机网站网站超级外链
  • hbfs.wordpress.com邯郸seo
  • 提升网站建设品质信息点击进入官方网站
  • 自助企业建站模版全国疫情最新名单
  • 利用代码如何做网站交换链接营销
  • 室内设计联盟官方网站下载云盘搜
  • 宝鸡做网站公司宁波seo推广服务电话
  • wordpress简约红主题百度快照优化seo
  • 公司网站制作公司倒闭网站推广优化的公司
  • 上海的咨询公司排名seo公司北京
  • 泰兴网站建设辅导机构
  • 外贸公司都是怎么找客户的seo按照搜索引擎的
  • cf租号网站怎么做的企业邮箱入口
  • 国内欣赏电商设计的网站免费模式营销案例
  • behance官网地址seo在线优化排名
  • 做彩票网站服务器付费恶意点击软件
  • 做静态网站需要什么网站建设深圳公司
  • 成都企业网站维护营销网站建设选择
  • 我怎么打不开建设银行的网站最佳bt磁力狗
  • 饮食网站首页页面公司网站设计图
  • 山西省建设执业资格注册中心网站清远市发布
  • 重庆做网站哪家好自建网站平台有哪些
  • 几年做啥网站能致富互联网广告怎么做
  • 合肥网站设计建设公司seo外链友情链接
  • 网站建设项目的预算如何做网络推广
  • 微网站制作方案百度管理员联系方式