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

专门做民宿的网站有哪些精品网站免费

专门做民宿的网站有哪些,精品网站免费,wordpress编辑文章中图片,中国七大网络运营商一、string类对象的常见构造 我们可采取以下的方式进行构造#xff0c;以下是常用的接口#xff1a; //生成空字符串 string; //拷贝构造函数 string(const string str); //用C-string来构造string类对象 string(const char* s); //string类对象中包含n个字符c strin…一、string类对象的常见构造 我们可采取以下的方式进行构造以下是常用的接口 //生成空字符串 string; //拷贝构造函数 string(const string str); //用C-string来构造string类对象 string(const char* s); //string类对象中包含n个字符c string(size_t n, char c); #includestring.h #includeiostream using namespace std;void test1() {string s1; string s2(123456);string s3(s2);string s4(5, c);cout s1 endl;cout s2 endl;cout s3 endl;cout s4 endl; }int main() {test1();return 0; } 二、string类对象的容量操作  这里主要对size、length、capacity、resize、reserve来进行讲解。 size与length大家都可顾名思义猜出其用途即返回String的大小。         capacity大家都有学习过顺序表的经验也可得出其为该容器的容量。         resize将字符串的大小调整为长度为 n 个字符。         clear清除字符串的内容使其变为一个空字符串长度为 0 个字符。这意味着将字符串中的所有字符都删除使其不包含任何字符长度为零。 // 测试string容量相关的接口 // size/clear/resize void Teststring1() {// 注意string类对象支持直接用cin和cout进行输入和输出string s(hello, C!!!);cout s.size() endl;cout s.length() endl;cout s.capacity() endl;cout s endl;// 将s中的字符串清空注意清空时只是将size清0不改变底层空间的大小s.clear();cout s.size() endl;cout s.capacity() endl;// 将s中有效字符个数增加到10个多出位置用a进行填充// “aaaaaaaaaa”s.resize(10, a);cout s.size() endl;cout s.capacity() endl;// 将s中有效字符个数增加到15个多出位置用缺省值\0进行填充// aaaaaaaaaa\0\0\0\0\0// 注意此时s中有效字符个数已经增加到15个s.resize(15);cout s.size() endl;cout s.capacity() endl;cout s endl;// 将s中有效字符个数缩小到5个s.resize(5);cout s.size() endl;cout s.capacity() endl;cout s endl; }从该运行结果我们可以得出这个结论在VS编译器下resize在任何情况下都不会进行缩容  reserve请求更改容量。它指的是让字符串的容量适应计划中的大小更改使其长度最多达到 n 个字符。如果 n 大于当前字符串的容量该函数会导致容器将其容量增加到 n 个字符或更多。在其他所有情况下这被视为一个非约束性的收缩字符串容量的请求容器的实现可以自由进行其他优化并使字符串的容量大于 n。 接下来我们对其进行测试 void Teststring2() {string s;// 测试reserve是否会改变string中有效元素个数s.reserve(100);cout s.size() endl;cout s.capacity() endl;// 测试reserve参数小于string的底层空间大小时是否会将空间缩小s.reserve(50);cout s.size() endl;cout s.capacity() endl; } 我们可以看到reserve与resize一样在任何情况下都不会缩容 三、string类对象的遍历操作 对于string的访问这里提供三种方式 1. 利用库里的重载[]直接进行访问。         2.利用迭代器进行访问。         3.利用范围for其本质还是迭代器 void Teststring3() {string s1(hello C);const string s2(Hello C);cout s1 s2 endl;cout s1[0] s2[0] endl;s1[0] H;cout s1 endl;// s2[0] h; 代码编译失败因为const类型对象不能修改string s(hello Bit);// 3种遍历方式// 需要注意的以下三种方式除了遍历string对象还可以遍历是修改string中的字符// 另外以下三种方式对于string而言第一种使用最多// 1. foroperator[]for (size_t i 0; i s.size(); i)cout s[i] endl;// 2.迭代器string::iterator it s.begin();while (it ! s.end()){cout *it endl;it;}// string::reverse_iterator rit s.rbegin();// C11之后直接使用auto定义迭代器让编译器推到迭代器的类型auto rit s.rbegin();while (rit ! s.rend())cout *rit endl;// 3.范围forfor (auto ch : s)cout ch endl; } 四、string类对象的修改操作  push_back在字符串后尾插字符c append在字符串后追加一个字符串         operator 在字符串后追加字符串str c_str(重点)返回C格式字符串         find npos从字符串pos位置开始往后找字符c返回该字符在字符串中的位置 rfind从字符串pos位置开始往前找字符c返回该字符在字符串中的位置         substr在str中从pos位置开始截取n个字符然后将其返回 void Teststring4() {string str;str.push_back( ); // 在str后插入空格str.append(hello); // 在str后追加一个字符hellostr C; // 在str后追加一个字符C str ; // 在str后追加一个字符串cout str endl;cout str.c_str() endl; // 以C语言的方式打印字符串// 获取file的后缀string file(string.cpp);size_t pos file.rfind(.);string suffix(file.substr(pos, file.size() - pos));cout suffix endl;// npos是string里面的一个静态成员变量// static const size_t npos -1;// 取出url中的域名string url(http://www.cplusplus.com/reference/string/string/find/);cout url endl;size_t start url.find(://);if (start string::npos){cout invalid url endl;return;}start 3;size_t finish url.find(/, start);string address url.substr(start, finish - start);cout address endl;// 删除url的协议前缀pos url.find(://);url.erase(0, pos 3);cout url endl; } 五、vs下string的结构 string总共占28个字节内部结构稍微复杂一点先是有一个联合体联合体用来定义string中字符串的存储空间 当字符串长度小于16时使用内部固定的字符数组来存放 当字符串长度大于等于16时从堆上开辟空间 union _Bxty { // storage for small buffer or pointer to larger one// This constructor previously initialized _Ptr. Dont rely on the new behavior without// renaming _String_val (and fixing the visualizer)._CONSTEXPR20 _Bxty() noexcept : _Buf() {} // user-provided, for fancy pointers_CONSTEXPR20 ~_Bxty() noexcept {} // user-provided, for fancy pointersvalue_type _Buf[_BUF_SIZE];pointer _Ptr;char _Alias[_BUF_SIZE]; // TRANSITION, ABI: _Alias is preserved for binary compatibility (especially /clr)};_Bxty _Bx; 这种设计也是有一定道理的大多数情况下字符串的长度都小于16那string对象创建好之后内部已经有了16个字符数组的固定空间不需要通过堆创建效率高。         其次还有一个size_t字段保存字符串长度一个size_t字段保存从堆上开辟空间总的容量 最后还有一个指针做一些其他事情。 故总共占1644428个字节。 完
http://www.w-s-a.com/news/225416/

相关文章:

  • 设备网站模板江西的赣州网站建设
  • 邯郸营销型网站国际招聘人才网
  • hexo wordpress 主题织梦网站优化教程
  • 网站建设方案及上海市建设协会网站
  • 轴承外贸网站怎么做南宁网站排名优化公司哪家好
  • 沈阳企业网站建站郴州优化公司
  • cctv5+手机在线直播观看seo关键词排名优化方法
  • 网站建设公司怎么谈单怎么开通微信小程序商店
  • 深圳做网站案例一个服务器可以备案几个网站
  • 网络营销策划名词解释泉州百度推广排名优化
  • 一键生成网站的软件互联网营销师是干什么
  • 网站后台管理水印怎么做手机优化设置
  • 哪个网站做图文素材多wordpress++优化
  • 建设网站就选用什么样的公司网站类型分类有哪些
  • 找平面设计师网站网站建设须知
  • 建设联结是不是正规网站wordpress 微博同步
  • 瑞安微网站建设广州推广
  • 做旅游宣传网站的流程图中国企业集成网电子商务
  • 开发商城网站开发成交功能网站
  • 网站建设公司专业公司排名搭建网站的企业
  • 网站建设难吗海南智能网站建设报价
  • 企业网站建设选题的依据及意义校园网站建设的论文
  • 网站版面设计方案水电维修在哪个网站上做推广好些
  • 邹平建设局官方网站企业宣传片广告公司
  • 南京建设集团网站建站极速通
  • 网站建设与推广员岗位职责网站开发应如何入账
  • 企业网站的作用和目的手机回收站
  • 大连零基础网站建设培训电话郎溪做网站
  • 成都科技网站建设注册公司最少需要多少注册资金
  • 找公司做网站注意事项麻城建设局网站停办