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

网站建设 绵阳信阳网络推广公司

网站建设 绵阳,信阳网络推广公司,用心做的网站,企业推广软文文章目录 一string类1C语言中的字符串2C中的string二遍历1[ ]2迭代器3const迭代器4范围for5auto6总结三String的尾插1size和length2max_size,capacity和clear3访问接口4尾插字符和字符串5 append的重载三string的扩容问题(1)怎么扩容(2&#…

文章目录

  • 一string类
  • 1C语言中的字符串
  • 2C++中的string
  • 二遍历
  • 1[ ]
  • 2迭代器
  • 3const迭代器
  • 4范围for
  • 5auto
  • 6总结
  • 三String的尾插
  • 1size和length
  • 2max_size,capacity和clear
  • 3访问接口
  • 4尾插字符和字符串
  • 5 append的重载
  • 三string的扩容问题
  • (1)怎么扩容
  • (2)reserve和reverse

一string类

1C语言中的字符串

C语言中,字符串是以’\0’结尾的一些字符的集合,为了操作方便,C标准库中提供了一些str系列
的库函数,但是这些库函数与字符串是分离开的,不太符合OOP的思想,而且底层空间需要用户
自己管理,稍不留神可能还会越界访问。
姓名。地址,

2C++中的string

在使用string类时,必须包含#include头文件以及using namespace std;
auto和范围for
我们马上在下文会提到这两个特别好用的用法,希望大家注意
在这里插入图片描述

string类本身是basic_string typedef的过来的

在这里插入图片描述
basic_string本身是一个模板

注意事项
(1)c++中的string类是包含在string头文件里的,所以要包含string
(2)容器和类里面一般会有接口,包括一些写好的函数和特殊定义(比如size,capacity)都叫接口
(3)c++一开始设计的时候没有容器的概念,string与后面的容器有一些不一样。具体表现是string的 接口非常多而杂,有些甚至重复定义,这是为了与后面的迭代器保持一致,但是以前多的不能删,后面c++的内容也只能兼容string.

二遍历

1[ ]

这里[ ]属于element access(元素获取)个人认为有点像访问的关键字
在这里插入图片描述

这里设置的非常巧妙,本来string类不能像数组一样访问下标直接访问或者遍历全部元素的,但是我们可以认为规定位置,然后返回进行访问,这样起到了数组下标访问问的效果
这样我们就可以进行遍历
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

2迭代器

迭代器差不多类似于指针,但是底层不同,string的迭代器类似于指针,下面it1类似于指针,cout*it1类似于解引用。
但其他的容器不一定。

在这里插入图片描述
在这里插入图片描述
迭代器差不多类似于指针,但是底层不同,string的迭代器类似于指针,但其他的容器不一定。

在这里插入图片描述

反向迭代器,从end往begin输出
在这里插入图片描述

3const迭代器

const对象不能使用普通迭代器

在这里插入图片描述
在这里插入图片描述

看上面的const对象如果像进行定义就要进行const修饰迭代器,这也是权限的放大 。

4范围for

我们以前遍历一些东西都要用(for int i=xx;i<xxx;i++)但是我们学了范围for可以方便的定义遍历
for(xx a:xxx)
是吧xxx从头到位赋值给a,然后一个个输出,编译器自动识别开头和结尾 、
xx是定义的类型
在这里插入图片描述

5auto

四种迭代器iterate,const iterate,reverse_ iterate,const reverse_ iterate
然后可以定义后直接 auto xxx=xxx.begin();这样不用指明很长的类型
然后上面的for遍历for(xx a:xxx)
xx可以写成auto,自动识别xxx的类型给auto

在这里插入图片描述

但是不会推出引用,要自己写一个&

在这里插入图片描述
现在auto引用时定义迭代器可以短一点
在这里插入图片描述

在这里插入图片描述

修改的时候要加&,因为是把s1一个个赋值给ch然后输出。下次cout时候就没用了,
但是一开始赋值给别名就进行前置修改了。

6总结

三种遍历方法,[],迭代器,范围for
范围for底层是迭代器,所以只有容器中支持迭代器的才支持范围for
因为数组底层和迭代器差不多,所以也支持范围for
auto是一个自动识别的类型,在定义迭代器类型一般是很多的字母,可以用auto

三String的尾插

1size和length

在这里插入图片描述

推荐size 因为其他容器也兼容size,这就二中注意事项中string臃肿的部分

2max_size,capacity和clear

这三个都是接口,max_size是最大下标,
capacity和栈中一样是空间可以扩容,
clear是把size直接搞成0。
在这里插入图片描述

在这里插入图片描述

3访问接口

at,[]

我们在遍历中知道[ ]怎么访问的了
下面我们介绍at
在这里插入图片描述
at和[]的不同是如果访问到非法处理方式不一样,at要抛出异常,然后捕获what(),如图:
在这里插入图片描述
[]异常是:
在这里插入图片描述

4尾插字符和字符串

尾插字符是push_back
尾插字符串是append
在这里插入图片描述

5 append的重载

我们不仅可以用接口,接口其实也有许多重载,这里我们就不细说了
在这里插入图片描述

三string的扩容问题

(1)怎么扩容

根据编译器的不同扩容方式不一样,这里是vs2022,它在后面一般是1.5倍的扩容。

在这里插入图片描述

(2)reserve和reverse

reverse是一个扩容接口(函数),反正我们如果提前知道要扩容多大可以直接提前reverse,他会提前开好一个比较大的空间,这样就不要频繁的扩容,在堆上开空间,
在这里插入图片描述

reverse有反转的意思,一般命名时候用到,上文的反向迭代器就加了reverse的前缀。

http://www.dinnco.com/news/15964.html

相关文章:

  • 网站怎么做防360拦截今日新闻内容
  • 北京品牌网站设计网站seo优化运营
  • 做网站的关键词怎么判断好不好品牌策划ppt案例
  • 山东济南市网站建设网店代运营靠谱吗
  • 菏泽建设信息网优化关键词规则
  • 临沂网站建设哪家最好网店培训机构
  • 网站做强制解析百度推广注册
  • 宜城做网站百度知道合伙人答题兼职
  • 视频网站用什么做的好处seozhun
  • 学做蛋糕网站免费推广网站大全下载安装
  • 网站404页面作用宁波seo哪家好
  • 今天全国猪价上涨今日猪seo排名官网
  • 门业网站 源码电商中seo是什么意思
  • 做互联网网站的会抓seo官网优化怎么做
  • 网站图片有什么要求吗温州seo推广外包
  • 苏州知名网站制作长尾关键词挖掘熊猫
  • 江苏 网站建设上海网络营销
  • logo设计网站哪个好一些深圳推广网络
  • 台州网站建设优化淄博新闻头条最新消息
  • 天津培训网站建设百度百科分类方法
  • 佛山专业网站建设公司windows清理优化大师
  • 网站开发使用什么运行软件北京学电脑的培训机构
  • 有做不锈钢工程的网站友情链接查询
  • 27寸显示器网站建设企业网页设计公司
  • 易风网站建设我想做网络推广找谁
  • 石材做网站怎么在百度上做推广
  • 网站博客程序顾问
  • 建设资格注册管理中心网站沈阳今天刚刚发生的新闻
  • 国外购物网站大全外国搜索引擎登录入口
  • 与网站建设关系密切的知识点怎样做一个产品营销方案