温馨提示:本篇文章依旧是c++速成系列的文章,因为从这里开始,内容就已经开始复杂,但博主还是以是什么,怎么用的原则继续给大家讲解知识点,希望大家能够耐心看完,并给博主留个三连,博主先在此谢过在看文章的小伙伴了
STL中的“三足鼎立”
在我们刚学编程语言的时候,都有学到过循环三剑客:while for do{}while();那么同样都是三个,为啥这里却叫三足鼎立?别急往下看
首先,我们先来讲解一下这三足是哪三足。
种类:下标+[ ] 、while和iterator(这个是博主自己给它起的名字)、范围for
下标+[ ]
这个是最简单,也是我们最容易接受的一个迭代方式
定义格式:for(int i = 0; i < 对象.长度(); i++)
{
语句;
}
样例:
for(int i = 0; i < s2.size(); i++)
{
cout << s2[i] << " ";
}
特点:与我们最初学的for循环相似。
由于这个迭代方式与for循环差不多,并且也没有什么好讲的,因此大家只要知道一个大概的格式即可
while和iterator
首先介绍一下iterator是迭代器的意思,它的作用就是迭代(所谓的迭代就是循环)
使用方式:
类型 对象名 = 对象名.begin()//这里的begin是一个接口,作用是获取首元素,那么这里还有一个end()的接口,作用是获取最末尾的元素。
样例:
auto it = dict(是一个对象).begin();//初始值
那么这里大家可能会疑惑auto是什么类型,其实它并不是什么新类型,它只是一个类型推断的关键字,作用:会自动推断类型
小妙招:如果我们在写代码时,如果遇到很复杂的代码,并且不能够确定其类型时,就可以使用auto,让编译器自己去推断类型
while(it != dict.end())条件
{
//语句
it++;//调整部分
}
结合我们之前的知识,我们其实可以发现while和ioterator这个迭代方式和while循环一模一样
范围for
经过上面的介绍,基本上都讲的差不多了,因此我们用简单地讲一下范围for
定义格式:
for(auto cur : a)
{
//语句;
}
样例:
for(auto cur : a)
{
cout << cur << endl;//注意这里容易出现错误,这里最容易出现的错误是
👆
//把这里写成了数组名
}
接口介绍
对对象容量的操作
接口名 作用
size 返回字符串的有效长度
capacity 返回空间的总大小
empty 检测字符串是否为空串
clear 清空有效字符
reserve 为字符串提前预留空间
resize 将有效字符的个数改成n个,剩余空间用c代替
对对象访问以及遍历的操作的接口
接口名 作用
operator[ ] 返回pos位置的字符,const string类对象调用
begin+ end begin获取一个字符的迭代器 + end获取最后一个字符下一个位 置的迭代器
rbegin + rend begin获取一个字符的迭代器 + end获取最后一个字符下一个位 置的迭代器
对对象的修改操作的接口
接口名 作用
push_back 尾插字符串
append 在字符串后面追加一个字符串
operatoe+= 在字符串后追加字符串
c_str 返回C格式字符串
find + npos 从字符串pos位置开始往后找字符c,返回该字符在字符串中的位置
rfind 从字符串pos位置开始往前找字符c,返回该字符在字符串中的位置
substr 在str中从pos位置开始,截取n个字符,然后将其返回
非成员函数
函数名 作用
operator+ 尽量少用,因为传值返回,导致深拷贝效率低
operator>> 输入运算符重载
operator<< 输出运算符重载
getline 获取一行字符串
relational operators 大小比较
那么这些知识基本的接口中的重要接口,更多接口大家可以自行去查阅官方文档,那么本品啊文章的内容就先到这里,我们下期文章再见,拜拜!
都看到这里了,给个三连呗,谢谢啦!!!