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

什么网站做班服比较好免费游戏直接能玩

什么网站做班服比较好,免费游戏直接能玩,上海中心设计公司是谁,麦包包在网站建设方面个人主页~ string 一、标准库中的string类1、什么是string类2、string类的常用接口讲解#xff08;1#xff09;string类的常见构造#xff08;2#xff09;string类的容量操作#xff08;3#xff09;string类对象的访问及遍历#xff08;4#xff09;string类对象的修… 个人主页~ string 一、标准库中的string类1、什么是string类2、string类的常用接口讲解1string类的常见构造2string类的容量操作3string类对象的访问及遍历4string类对象的修改5string类非成员函数6其他7vs和g下string结构说明vs下的string结构g下string结构 一、标准库中的string类 1、什么是string类 1字符串是表示字符序列的类string是表示字符串的字符串类 2标准的字符串提供了对此类对象的支持其接口类似于标准字符容器的接口与常规容器的接口基本相同但添加了专门用于操作单字节字符字符串的设计特性也就是专门用来操作string的常规操作 3string类是使用char作为它的字符类型 4string类是basic_string模版类的一个实例它使用char来实例化basic_string模板类并用char_traits和allocator作为basic_string的默认参数 basic_stringchar s1; string s2; //这两个是一样的string就是basic_string的char类型特化 typedef basic_stringchar, char_traits, allocator string;//底层5不能操作多字节或者变长字符的序列 6在使用时要包头文件以及展开命名空间 2、string类的常用接口讲解 1string类的常见构造 函数名称功能说明string()构造空的字符串string(const char* s)用C格式的字符串构造字符串string(const string s)拷贝构造函数string(size_t n,char c)字符串中包含n个字符c void test() {string s1;string s2(hello world);string s3(s2);string s4(5, a); }2string类的容量操作 函数名称功能说明size返回字符串有效字符长度empty检测字符串是否为空是返回true否返回falseclear清空有效字符reserve为字符串预留空间resize将有效字符个数改为n个多出的空间用字符c填充capacity总空间大小length返回字符串有效字符长度 void test2() {string s1(hello world);cout s1 endl;//测试size和lengthcout s1.size() endl;cout s1.length() endl;//size和length底层实现原理完全相同在刚刚创造出string的时候对于字符串来说叫length很合适//所以起名为length但不久后STL产生了为了与其他的模版比如listvector等统一,//所以加了size,保持接口一致性一般都用size//测emptycout s1.empty() endl;//测capacitycout s1.capacity() endl;//测resizes1.resize(5, a);cout s1 endl;s1.resize(15, a);cout s1 endl;//resize(size_t n)与resize(size_t n,char c)都是将字符串中有效字符个数改到n个//不同的是当字符个数增多时resize(size_t n)用0来填充多出的元素空间//resize(size_t n,char c)用c字符填充多出的元素空间//resize改变元素个数时如果个数增多可能会改变底层容量的大小如果减少则不变//测reserves1.reserve(15);cout s1.capacity() endl;//为string预留空间如果reserve的参数小于string的底层空间总大小时reserve不会改变容量大小//测clears1.clear();cout s1.capacity() endl;s1 little monster;//在后边有讲解cout s1 endl;//clear只是将string中有效字符清空不改变底层大小可以再键入新内容 }3string类对象的访问及遍历 函数名称功能说明operator[ ]返回pos位置的字符const string类调用begin 和 endbegin获取一个字符的迭代器end获取最后一个字符的后一个位置的迭代器rbegin 和 rendrbegin获取一个字符的迭代器rend获取最后一个字符的后一个位置的迭代器范围for更简洁的遍历 void test3() {string s1(hello world);cout s1[6] endl;//使用下标操作符[]可以直接找到对应位置的字符//string::iterator it s1.begin();auto it s1.begin();//这里体现出了auto的优越性上面一长串的类型可以直接用auto推导代替for (it; it ! s1.end(); it){cout *it ;}cout endl; //begin记录第一个有效字符的位置end记录最后一个有效字符的后一个位置 //从头到尾的打印是一个重载运算符在其他类中包括链表类也可以直接找到下一个成员for (auto it : s1){cout it ;}cout endl; //使用范围for进行遍历十分方便auto rit s1.rbegin();for (rit; rit ! s1.rend(); rit){cout *rit ;} //rbegin和rend是一对与begin和end相反的函数rbegin记录的是最后一个有效字符的位置rend记录的是第一个有效字符的前一个位置通过实现逆向输出 }4string类对象的修改 函数名称功能说明operator在字符串后追加字符串c_str返回C格式字符串find从字符串pos位置开始往后找字符c返回该字符在字符串中的位置push_back在字符串后尾插字符append在字符串后追加一个字符串rfind从字符串pos位置开始往前找字符c返回该字符在字符串中的位置substr在str中从pos位置开始截取n个字符然后将其返回 void test4() {string s1(hello world);//测试s1 !!!!;cout s1 endl;//c_str测试cout s1.c_str() endl;//c_str就是将c的格式转化为c语言的格式这样字符串就可以用C语言的方式来操作//并且c_str返回的是指针因为是重载运算符所以才显示指向的内容//find测试cout s1.find(w,2) endl;//pushback测试s1.push_back(6);cout s1 endl;//append测试s1.append(789);cout s1 endl;//rfind测试cout s1.rfind(l , 6) endl;//substr测试cout s1.substr(0, 11) endl;//substr只会截取并返回不改变s1的内容 }在string尾部追加字符时可以使用push_back , append , ,push_back只能追加字符append追加字符串所以我们一般常用的是既可以追加字符又可以追加字符串并且使用起来书写简单代码可读性高 对string进行操作时如果可预见可以放多少字符可以用reserve把空间预留好 这里的 find 和 rfind 与 begin rbegin 那一套一样r都表示相反注意这里find是从pos开始往后找到的第一个指定字符rfind是从pos开始往前找到的第一个指定字符然后返回该字符所在位置的下标 5string类非成员函数 函数名称功能说明operator输入运算符重载operator输出运算符重载getline获取一行字符串relational operators大小比较operator少用传值返回深拷贝效率低 这部分内容比较简单我设置了超链接直接点进去看一下文档就可以了 6其他 string类还有很多其他的操作不一一列举了需要时直接打开cplusplus查找文档即可 string类 7vs和g下string结构说明 前提32位平台 vs下的string结构 string总共占28个字节内部结构稍微复杂一点有一个联合体用来定义string中字符串的存储空间当字符串长度小于16时使用内部固定的字符数组存放当字符串长度大于等于16时从堆上开辟空间这样保证了字符串在较小时不需要通过堆创建提高了效率占16字节 还有一个size_t字段保存字符串长度占4字节一个size_t字段保存从堆上开辟空间总的容量占4字节 最后还有一个指针4字节共28字节 g下string结构 在g下string通过写时拷贝实现只占4个字节内部只包含一个指针指向一块堆空间堆空间内部包含了空间总大小、字符串有效长度、引用计数 写时拷贝在数据第一次写入到某个存储位置时首先将原有内容拷贝出来写到另一位置处然后再将数据写入到存储设备中该技术只拷贝在拷贝初始化开始之后修改过的数据 简单来说就是在用之前不开空间在真正要修改和写入时才开辟空间可以减少空间的浪费它是在浅拷贝的基础上增加了引用计数的方式实现的 引用计数用来记录资源使用者的个数在构造时将资源的计数给成1每增加一个对象使用该资源就给计数增加1当某个对象被销毁时先给该计数减1然后再检查是否需要释放资源如果计数为1说明该对象是该资源的最后一个使用者将该资源释放否则因为其他对象还在使用该资源该资源就不能释放 今日分享就到这里~
http://www.pierceye.com/news/135860/

相关文章:

  • 域名注册最后是网站wordpress手机上传图片插件
  • 有哪些网站交互效果做的好的如何让google收录网站
  • wordpress到服务器配置云南seo
  • 常见网站安全漏洞行业网站如何推广
  • 网站开发实战项目苏州行业网站建设费用
  • 大团企业网站制作东莞网站制作的公司
  • 石家庄做网站公司的电话网站建设费用大概多少
  • 襄阳市网站建设怎么注册工作邮箱
  • 在百度里面做个网站怎么做的摄影大赛官网
  • 网站建设需要哪些的ps网站策划
  • 网站维护的意义上海知名进出口贸易公司
  • 青岛中小微企业互联网站建设补贴微信小程序怎么发布上线
  • 贺州做网站哪家公司温州移动网站建设服务商
  • 网站变灰兼容代码北京计算机培训学校
  • 网站导航包括海拉尔网站建设+网站设计
  • flashfxp 上传网站佛山哪里有网站开发
  • qq互联 网站开发济南建设集团有限公司官网
  • 网站开发兼职网站学校网站构建
  • 简约网站后台媒体网站开发
  • 广东营销网站建设网页设计理念及设计思路
  • 咋自己做网站桂林生活网官网首页
  • 电子商务网站建设的展望自己做壁纸的网站
  • 国外h5建站网站建设方案总结评语
  • 百度开放平台白城整站优化
  • 搜狗整站优化广州市网站建站
  • 最方便建立网站北京定制网络营销收费
  • 烟台放心的一站式网站建设桐梓网站建设
  • 如何高效的完成网站建设步骤美食分享网站建设策划书
  • 建立网站的软件网站建设数据库的购买
  • 建网站需要多大的宽带wordpress 分享后可见