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

网站优化哪家公司好四方坪网站建设

网站优化哪家公司好,四方坪网站建设,wordpress小米路由器3,定制包装需要多少钱贴主在学习string类时遇到过两个困扰我的问题,今天拿出来给大家分享一下我是如何解决的 一、扩容时capacity的增长问题 在string的capacity()接口中,调用的是这个string对象的容量(可以存多少个有效字符),而size()是调用的string对象现在有…

贴主在学习string类时遇到过两个困扰我的问题,今天拿出来给大家分享一下我是如何解决的

一、扩容时capacity的增长问题

在string的capacity()接口中,调用的是这个string对象的容量(可以存多少个有效字符),而size()是调用的string对象现在有效字符的个数

string s1;
cout << s1.size() << endl << s1.capacity() << endl;

 直接定义一个空的string对象,然后分别输出它的size和capacity,结果会是0和15

这是因为capacity默认一开始是15(只要size没有超过15)

如果超过了15,capacity会增容到31,从这里开始就有规律了

 每次都是差不多1.5倍的关系

然而,如果在实例化string对象时直接初始化一个大于15的字符串

string s1("Hello World! 123");
cout << s1.size() << endl << s1.capacity() << endl;

它这里会输出16和16,为什么这次超过了15,但不会扩容到31?

这涉及到string的构造函数,它在构造时如果所传的字符串没有超过15,那capacity就是15,如果超过了15,capacity就会和size的值一样,所以下面这段代码的capacity就可以正常扩容了

string s1("Hello");
s1+=" World! 123";//再尾插这个字符串
cout << s1.size() << endl << s1.capacity() << endl;

这次输出的就是16和30了

二、string的存储问题

string和C语言的char*类型最大的区别就是string不是以\0结束,而是会输出全部的有效字符

这串代码会输出什么? 

string s = "Hello \0World";
cout << s << endl;
s+="nihao";
cout << s << endl;

答案是会输出Hello 和Hello nihao

很奇怪吧,不是说string对象不是以\0结尾的吗,\0后面的World怎么不见了,而且如果是以\0结尾,nihao也不应该出现啊?

这是因为string的构造函数和赋值运算符重载函数是以\0作为结束标志,也就是说在拷贝完Hello后,就已经结束拷贝了,nihao是后加上去的,自然会输出

那要怎么样才能发挥string可以输出\0后面的字符的特性呢?

string s = "Hello ";
s +='\0';
s+="World";
cout << s << endl;
s+="nihao";
cout << s << endl;

这时输出的就是Hello World和Hello Worldnihao了

也就是说,既然字符串是读取到\0,那直接以单个字符的形式插入\0就可以了

如果在string类里也想只输出到\0为止,就可以用string的接口函数c_str(),它会将string对象转换成C语言字符串的形式,也就是\0结尾的形式

string s = "Hello ";
s +='\0';
s+="World";
s+="nihao";
cout << s.c_str() << endl;

这次输出的就是Hello 了

http://www.yayakq.cn/news/548786/

相关文章:

  • 网站建设延期合同书自建站价格
  • 巴中网站建设网站推广营销网站认识
  • 车票网站模板提供设计网站效果图
  • 做视频网站用什么语言前端学校网站开发视频教程
  • 企业展示型电商网站模板简约创意男装字体logo设计
  • 深圳响应式网站公司用js做自适应网站
  • 衡阳网站建设 千度网络深圳58网站建设
  • 权威网站排名嘉定网站建设电脑培训
  • 图片类网站开发实验总结遂宁商城网站建设报价
  • 个人博客网站开发毕业设计可以在哪些网站 APP做推广
  • 中企网站建设微博推广的方法
  • 如何免费建设一个网站网站建设具备哪些技术人员
  • 国外哪些网站做产品推广比较好兴县网站建设
  • 网站空间试用网页平面设计培训班
  • 网站首页大图怎么做长春房产网 房小二
  • 精品课程网站开发的创新点永德网站建设
  • 个人建站做什么网站比较赚钱angularjs做的网站有哪些
  • 最好建网站系统的软件平面素材网
  • 网站建设过程心得体会建设百度网站多少钱
  • 网站建设属于高新技术收入吗新野做网站
  • 北京网站如何做推广企业门户网站 php
  • 网站建设仿站企业公司网店运营模式有哪些
  • 无锡网站建设收费知名设计网站公司
  • 360网站排名怎么做做电影网站成本
  • 建设网站哪家公司好wordpress 亲子主题
  • 口碑好门户网站开发哪些平台可以建立网站吗
  • 外贸型网站的特点从零开始做网站数据库
  • 学做淘宝店的网站吗工程施工管理平台
  • 电子商务网站设计毕业设计论文最新新闻热点素材
  • 有哪些网站是做采购招标的优化外包顾问