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

建设网站开发公司本地网站建设DW

建设网站开发公司,本地网站建设DW,免费行情软件下载大全,公司网站怎么自己做开始使用 string类 吧 1 继续学习1.1 扩容机制1.2 string类对象的访问及遍历操作1.3 string类对象的修改操作1.4 其他一些成员函数 2 实践解决问题#xff1a;Thanks♪(#xff65;ω#xff65;)#xff89;谢谢阅读#xff01;#xff01;#xff01;下一篇文章见Thanks♪(ω)谢谢阅读下一篇文章见 首先不得不说的是由于历史原因string的接口多达130多个简直冗杂… 所以学习过程中我们只需要选取常用的好用的来进行使用即可有种垃圾堆里翻美食的感觉 1 继续学习 上一篇文章 上一篇文章我们给出了构造函数和一些成员函数的功能 成员函数作用begin返回字符首位置 (迭代器常用 )end返回字符结尾 (迭代器常用)size重点返回字符串有效字符长度length返回字符串有效字符长度capacity返回空间总大小empty 重点)检测字符串释放为空串是返回true否则返回falseclear 重点清空有效字符reserve 重点)为字符串预留空间resize 重点将有效字符的个数该成n个多出的空间用字符c填充 1.1 扩容机制 上一篇文章我们看到了string的容量是比较模糊的为什么是15它的扩容规则是什么 接下来我们来探索一下string的扩容机制 首先我们来写一个简单的测试程序 #includestring #includeiostreamusing namespace std;int main(){string s1 ;for (int i 0; i 200; i) {s1 c;//检查是否需要扩容 然后打印出来if (s1.size() s1.capacity()) cout string 的空间 s1.capacity() endl;}return 0; }来看看效果 可以看出来VS2022 基本是以1.5 倍扩容。那全部的编译器都是1.5 倍吗 再让我们来liunx中用g 来试试哈。 所以不同编译器的扩容机制也不同这就是历史的原因了。根据我们所学过的顺序表我们可以很容易想到内部扩容机制是什么样子 检查 size 是否 等于 capacity如果相等 扩容否则直接插入尾部。 1.2 string类对象的访问及遍历操作 函数名称功能说明operator[] 重点返回pos位置的字符const string类对象调用begin endbegin获取一个字符的迭代器 end获取最后一个字符下一个位置的迭代器rbegin rendrbegin获取一个字符的迭代器 rend获取最后一个字符下一个位置的迭代器范围forC11支持更简洁的范围for的新遍历方式(底层是迭代器) 迭代器是C新增的内容功能类似指针这里不细说只将在string中如何使用。 首先看到迭代器iterator功能类似指针那必须想到遍历的作用对不对。接下来我们来看看迭代器的遍历好不好用。 注意不同类型的迭代器需要使用命名空间限定 这里是 string :: iterator #includestring #includeiostreamusing namespace std;int main() {string s1 I love you !;string::iterator it s1.begin();while (it ! s1.end()){cout *it ;it;}return 0; }看见这熟悉的结构while()循环 *it it是不是真的和指针一样。 再让我们看一下结果吧 顺利的遍历了全部字符串。 接下来再来看一个好玩的逆转迭代器reverse_iterator #includestring #includeiostreamusing namespace std;int main() {string s1 I love you !;string::reverse_iterator it s1.rbegin();while (it ! s1.rend()){cout *it ;it;}return 0; }仔细看依然是 it而且起始位置也成为了rbegin 结尾是rend() 是不是非常有意思。 来看效果 成功逆转打印very good!!! 同样也可以使用基于范围的for循环 for(auto it : s1){ } 即可完成遍历操作 1.3 string类对象的修改操作 来给一波函数 函数名称功能说明push_back在字符串后尾插字符cappend在字符串后追加一个字符串operator (重点)在字符串后追加字符串strc_str(重点)返回C格式字符串find npos(重点)从字符串pos位置开始往后找字符c返回该字符在字符串中的位置rfind从字符串pos位置开始往前找字符c返回该字符在字符串中的位置substr在str中从pos位置开始截取n个字符然后将其返回 这里面其实有许多函数重载不过常用的就那几个有需求请自行查看C库 来初步使用一下插入函数 #includestring #includeiostreamusing namespace std;int main() {string s1 I love you !;s1.push_back(c);cout 结尾插入字符 s1 endl;s1.append(forever);cout append 结尾插入字符串 s1 endl;s1 xxxxx;cout 结尾插入字符串 s1 endl;return 0; }非常顺利的插入了 来看效果 1.4 其他一些成员函数 函数功能说明operator尽量少用因为传值返回导致深拷贝效率低operator 重点输入运算符重载operator 重点输出运算符重载getline 重点获取一行字符串relational operators 重点大小比较 这些我们以后再进行详细讲解。 2 实践解决问题 家人们上链接 1859 . 将句子排序 来看题目描述 这个我们直接套用字符串操作模版即可 这个非常好用的获取单词的办法首先使用基于范围的for循环然后遍历只要不是空格就插入到中间string类temp中遇到空格就把该单词存入数组中。非常好用 然后这道题还要求我们完成排序所以直接使用sort按要求排序即可。 最后删除结尾的数字重新插入到s中即可。 bool compare(string a,string b){return a.back() b.back(); }class Solution { public:string sortSentence(string s) {string temp ;vectorstring res;s ;for(auto ch : s){if(ch ){res.push_back(temp);temp.clear();}else{temp.push_back(ch);}}sort(res.begin(),res.end(),compare);s.clear();for(auto it : res){it.pop_back();s it ;} s.pop_back();return s;} };运行效果非常好 Thanks♪(ω)谢谢阅读 下一篇文章见
http://www.pierceye.com/news/152824/

相关文章:

  • 四川省乐山市建设银行网站互联网保险行业发展报告
  • 厦门手机网站建设是什么山东泰安昨晚发生的事
  • 山西网站开发公司园林景观设计公司计划书
  • 吉林平安建设网站项城市建设规划局网站
  • 购物网站er图经营管理培训课程
  • 男女明星直接做的视频网站wordpress设置的页面跳转失败
  • 建企业网站价格wordpress稳定吗
  • 免费1级做爰网站研发项目管理系统
  • 建设网站好公司石家庄招聘求职信息网
  • 杭州市建筑业协会官网在线seo推广软件
  • 网站建设策划师管理网站建设
  • 做搜狗网站排名首页公司取名生成器免费
  • 用模板搭建的网站备案吗官方网站平台下载软件
  • 网站建设和网络推广方案济宁网站建设那家好
  • 做网站用哪个软件写比较好电商运营团队结构图
  • 建设领域信用系统网站邢台网站建设讯息
  • 建设网站技术人员先进事迹无锡有哪些做网站的公司
  • 2016网站设计欣赏企业网站推广建设
  • 国外简洁的网站跨境电商服务平台有哪些
  • 国内做网站技术支持 网站建设
  • 绍兴做团购的网站织梦转易优cms
  • 百度 网站 质量度扬州市工程建设招标网
  • 营销网站建设流程图优化营商环境发言稿
  • 设计网站公司有哪些怎么做网店
  • 高端的网站设计费用外贸营销型网站建设平台
  • 买源码做网站简单嘛贵阳百度seo点击软件
  • 省建设注册管理网站网站的维护和推广
  • wordpress 插件站wordpress本地mp3
  • 爱站工具包的主要功能很有设计感的企业网站
  • 地下城钓鱼网站如何做iis添加网站无法访问