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

网站开发的ppt报告北京城乡住房建设厅网站

网站开发的ppt报告,北京城乡住房建设厅网站,个人建网站做站长,网站开发服务费记账本片要分享的内容是有关于string的知识#xff0c;在这之前得介绍一下什么是STL#xff1b; 目录 1.STL简单介绍 2. string简单介绍 3.string简单使用 3.1.string的定义 3.2.字符串的拼接 3.3.string的遍历 3.3.1.循环遍历 3.3.2.迭代器遍历 4.string的函数构造 1.…本片要分享的内容是有关于string的知识在这之前得介绍一下什么是STL 目录 1.STL简单介绍 2. string简单介绍 3.string简单使用 3.1.string的定义 3.2.字符串的拼接 3.3.string的遍历 3.3.1.循环遍历 3.3.2.迭代器遍历 4.string的函数构造 1.STL简单介绍 STL是C标准库的重要组成部分不仅是一个可复用的组件库而且是一个包罗数据结构与算法的软件框架。也就是说他是C标准库的一个子集也就是说从今往后我们需要用到数据结构的内容时不需要再像C语言自己定义结构使用起来会更加便捷。 当然C标准库中还有其他的组成部分其中STL是最常使用的部分所以我们需要学习它的使用。 首先了解SLT的六大组件 六大组件中最重要的就是算法和容器了容器其实就可以理解为数据结构包阔我们之前学的栈、队列、树等等都叫做容器只是将数据结构换了叫法 算法就是我们之前所学的像排序、逆置、交换等等都可以称之为算法目前我们需要重点学习的就是容器算法和迭代器 2. string简单介绍 严格来说string并不属于STL中所以在STL中是找不到string的而string属于标准库所以当我们在容器中是找不到string的 但是我们可以在标准库中找到string  原因是因为string诞生的比STL早一些但是string的用法和我们今后所学的容器非常相似我们只要学习完string之后再学习STL容器会容易许多。 接下来观察string的描述 文档中说string是一个用字符的顺序数组实现的一个对象也可以理解为他管理着字符的数据表 在日常使用中很多的内容都需要用字符串来表示比如身份证号如果使用int表示会超出长度而且有的人身份证号尾号是x 。 再继续观察string包括的内容 可以看到string还包括了成员函数自己的成员函数Member functions还有迭代器Iterators还有容量capacity相关的内容。关于 容量方面可以说在之前学习数据结构时有所耳闻在C语言的学习中我们常常使用数组顺序表等结构容量不够时需要我们自己写函数扩容 但是在C中我们使用的容量的内容有自扩容属性也就是空间不够时可以自己开空间非常好用。 接下来用代码来品一品string的用法 3.string简单使用 3.1.string的定义 如上代码我们就定义好两个字符串了但是s1没有初始化s2的初始化方式是拷贝构造同时还有许多种初始化方式如下 可以看到我们使用的是第一种定义方式无参构造和第四种带参构造 同样的string也支持输入和输出 相比于C语言解决了输入字符导致的越界或者按需申请释放空间的问题只要我们的内存够大任何长度的字符串都可以输入输出。 3.2.字符串的拼接 在C中字符串的拼接非常容易 void test_string2() {string s1(wddniubi );string s2(hello world);string ret s1 s2;cout ret endl; } int main() {test_string2();return 0; } 我们只需要将s1s2即可实现字符串的拼接键盘输入亦可 void test_string3() {string s1;string s2;cin s1;cin s2;cout s1 s2 endl; }int main() {test_string3();return 0; }玩儿法花式多样比起C语言中的strcat简直不要爽太多哼哼啊啊啊啊啊啊啊啊啊啊 strcat空间不够不能自行的扩容并且需要找到\0再实现追加而string完全不需要先找末尾节省时间 3.3.string的遍历 3.3.1.循环遍历 void test_string4() {string s1(hello world);//string遍历for (size_t i 0; i s1.size(); i){cout s1[i] ;}cout endl;}在上面的代码中size是capacity 的一个内部函数是来计算字符串的大小的相当于strlen 可以看到遍历输出的结果 同时我们可以通过遍历对其进行修改 void test_string4() {string s1(hello world);//string遍历for (size_t i 0; i s1.size(); i){cout s1[i] ;}cout endl;string遍历修改 for (size_t i 0; i s1.size(); i){s1[i];}cout s1; } 以上是我们最容易掌握的遍历方式还有一种方式叫做迭代器 3.3.2.迭代器遍历 直接上代码简单观察 void test_string5() {string s1(hello world);string::iterator it s1.begin();while (it ! s1.end()){cout *it ;it;}cout endl; } 这里要使用iterator迭代器来定义变量it 首先我们将迭代器简单理解为一个指针 这里有三个成员变量其中_str指向存放着这个字符串的空间 我们在观察一下迭代器中的函数 像begin以及下面这些都是迭代器中的成员函数其中begain指的就是字符串开始的位置。 那end指向的就是\0的位置 所以我们只需要while循环中规定结束的条件字符数组就会从字符串s1的begin的位置一直遍历到end的位置 可以看到已经通过迭代器遍历输出。 同样迭代器除了读取数据也可以做到写入数据 void test_string5() {string s1(hello world);string::iterator it s1.begin();while (it ! s1.end()){cout *it ;it;}cout endl;it s1.begin();while (it ! s1.end()){*ita;it;}cout endl;cout s1 endl; } 我们将s1的内容都改成了a结果如下 那迭代器中还有反向迭代器的用法比如其中的函数rbegin用法和begin的用法一样 void test_string6() {string s1(hello world);string::reverse_iterator rit s1.rbegin();while (rit ! s1.rend()){cout *rit ;rit;}cout endl; } 可以看到我们的hello world反过来了 那反向迭代器就是这样的。 还可以使用auto来完成反向迭代器 void test_string6() {string s1(hello world);auto rit s1.rbegin();while (rit ! s1.rend()){cout *rit ;rit;}cout endl; }auto会自动推导出rbegin的返回类型rbegin的返回类型就是reverse_iterator 4.string的函数构造 说完string中一些常用的函数我们不妨深入观察它的函数构造,先上代码观察 void test_string7() {string s1(hello world);cout s1 endl;string s2(s1, 6, 5);cout s2 endl;string s3(helloooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo);string s4(s3, 3);cout s4 endl; } 可以看到string支持很多拷贝构造的方式其中第三中有三个参数那官方的解析如下 可以看到第三种构造的意思就是说将字符串从第pos个位置开始拷贝len个字符或者当没有len时会直到字符的结束可以观察上面的测试代码我们使用s3拷贝构造s4时没有给出len的值那运行结果如下 可以看到我们直接取到了字符串s4的结尾 同样的我们也可以使用迭代器区间初始化 void test_string7() {string s5(5, a);string s6(s5.begin(), s5.end());cout s6 endl; } 这里的意思是将s5的前五个数据初始化成为a随后再用s5的开始和结尾的数据初始化s6结果如下 可以看到初始化成功了。 所以string有很多初始化版本string 的初始化就介绍到这里。 那学习string的目的是为了以后学习STL中容器更方便一些STL中许多内容都是和string中使用方法相似的这就是我们学习string的目的 以上就是本片索要分享的内容如果对你有所帮助还请三连支持感谢您的阅读。
http://www.dnsts.com.cn/news/114167.html

相关文章:

  • 专业做网文的网站咸阳城乡建设局网站
  • 做设计找素材都有什么网站网站建设克隆
  • 卫龙的网站做的污污分深圳网站建设网站排名优化
  • wordpress直接访问站点长沙本地招聘网最新招聘信息
  • 什么免费网站可以链接域名制作动画的网站模板
  • h5响应式网站建设方案廊坊网站
  • 泉州网站建设优化公司浙江短视频seo优化网站
  • 服务器 无法访问网站沈阳市城乡建设网站
  • 如何在网站上做自动弹出wordpress 手机端模板
  • 做网站打算套用模板辽宁网站推广
  • 我们的优势的网站找私人做网站
  • 接网站建设单子注意事项济南网站建设公司按需定制
  • 商务网站建设作业加强文化网站建设
  • 直播网站开发技术网络安全维护公司
  • 唐山市城市建设档案馆网站wordpress房产模板
  • 百度推广网站建设费做网站不给源码程序
  • 重庆官方网站查询系统网站优化 图片
  • 常用网站设计缩略图抖音小程序广告怎么跳过
  • 北京网站建设net2006网络营销总监岗位职责
  • 网站怎么做缓存小说网站建设模板下载
  • 网站排名 影响因素无障碍网站建设的意义
  • 网站没有icp备案vs网站开发教程
  • 宁波网站建设的过程推广app赚佣金
  • 西安做网站陕西必达网站开发找哪个
  • 学校建设网站的作用做邀请函的网站
  • 郑州专业的网站公司教育培训网站模板下载
  • 红色网站源码服务好的高端网站建设服务商
  • 网站动态和静态的区别WordPress 秒开
  • 长春做网站大公司网站建设培训西安
  • 网站交互主要做什么的北京建设交易工程信息网站