C++STL中的string的常用API

前言

string其实就是在堆山new出来的一个字符串数组通过,类包装、迭代器以及算法包装起来的一个容器模板

一、string的构造函数

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

二、string的运算符以及修改操作接口

1、运算符

在string模板类中,定义了运算符,如==、<、>、>=、<=、+,+=、[]等运算符
对于比较大小来说就是,通过ascII来比较的和c比较字符串的用法是一样的这里是关于c语言字符串比较的文章
在这里插入图片描述
那对于+,+=这些运算符来说就是在字符串后面追加内容:
但是尽量少用+因为在底层的operator+是传值,如果大量使用会有很多地方有浅拷贝
在这里插入图片描述
假设需要访问一个字符串里面的所有字符,就可以使用[]:
在这里插入图片描述
s1.size(),可以返回字符串的长度

2、追加接口

在string中有push_back,append等追加接口:
push_back(),它的作用是在string后追加一个字符
在这里插入图片描述
在这里插入图片描述
append则是在string后面追加一个字符串
在这里插入图片描述
在这里插入图片描述
replace(n1,n2,string),把n1到n2位置的字符串用string替换
在这里插入图片描述

3、删除接口

有追就肯定有删除,删除就可以用到pop_back()
在这里插入图片描述
或者erase(),等删除内容的接口

4、查找接口

c_str(),string的底层有一个char str的成员,这个接口就可以放回这个字符串的地址,这样放回后可以查看到这个字符串*
在这里插入图片描述
find(需要查找的字符),find()函数都是是查找到指定的字符返回这个指定字符的下标位置,默认是从前完后找rfind就是默认从后往前找
在这里插入图片描述

在这里插入图片描述

5、转换字符串

to_string(),可以将非字符串的值转换成字符串
在这里插入图片描述

6、截取字符串到新的字符串

substr(n1,n2),从n1的下标位置开始算到n2的数量个字符串包括n1
在这里插入图片描述

三、string管理容量的接口

1、size()

size(),是用来计算字符串长度的接口,计算长度的时候是不计算’/0’的
在这里插入图片描述

2、length()

length(),也是用来计算字符串长度的结构,计算长度的时候也是不计算’/0’
在这里插入图片描述

3、capacity()

capacity(),是string用来查看底层string数组空间大小的一个接口,同时控制着扩容机制
在这里插入图片描述
在这里插入图片描述
当字符串的size大小超过了capacity,就会发生扩容

4、reserve()

reserve(size_t n),这个接口的作用是提前给string字符串开好空间 而且这个提起开好的空间很大时比size_t n大的:
在这里插入图片描述
如果sizt_t n的值小于capacity一般情况下是不会缩容的。

5、resize()

resize,是改变字符串的有效字符,有效字符那就说明会改变string的size,并且当resize中的size_t n的值大于capacity的时候就会发生扩容,小于capacity并不会缩容即不会改变底层空间的大小
在这里插入图片描述
resize(size_t n),这个接口是改变字符串的有效长度,并且将大于capacity之后扩容出来的空间用’0’来初始化
在这里插入图片描述
resize(size_t n,char c),这个接口是改变字符串的有效长度,并且将大于capacity之后扩容出来的空间用c来初始化
在这里插入图片描述

6、 clear()

clear(),会清理string字符串中的内容,但是不会改变string底层的容量
在这里插入图片描述
在这里插入图片描述

7、empty()

这个接口就是判断字符串是不是空的一个接口。
在这里插入图片描述

四、string类的遍历

1、operator[]

因为operator[]会返回,下标指定的字符,
在这里插入图片描述

2、迭代器 (iterator)遍历

迭代器它类似指针,但是对于不同的容器迭代器的呈现方式是不一样的
对于string来说,迭代器就类似于一个指针的东西,因为在string类中有以下三个最基础的成员:
char* str,size_t size;size_t capacity;
而string的迭代器就是返回了str字符串的首元素地址
在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值