我是靠谱客的博主 落寞黑猫,最近开发中收集的这篇文章主要介绍C++中遍历字符串一、普通 for 循环遍历二、C++中迭代器的使用三、范围 for 的使用,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

C++中的常用遍历方式:

一、普通 for 循环遍历

二、C++中迭代器的使用

三、范围 for 的使用

无论是C 语言还是C++ ,我们最常用到的遍历方式便是 for ( ; ; ) 循环的方式,一一遍历数组/字符串内容然后将其打印,接下来我们一起来看看常用遍历方式:

一.普通的 for 循环遍历

首先我们来看看一组打印代码:

string str1="12345";
int i=0;
for(;i<str1.size();++i){
cout<<str1[i]<<" ";
}
cout<<endl;

上述代码就是一段普通的用 for 循环来打印字符串内容的代码,接下来将介绍另外一种打印方式:iterator 接口

在这里插入图片描述

二、迭代器 iterator

迭代的使用类似于指针,同样可以进行 解引用操作和自增操作

(一)begin 接口与 end 接口

iterator begin();
const_iterator begin() const;

iterator end();
const_iterator end() const;

1.可读可写型

迭代器是一种元素的通用访问机制,它的主要用法:

string str1="12345";
string::iterator it=str1.begin();
while(it!=str1.end()){
cout<<*it<<" ";
++it;
}
cout<<endl;

这里的 begin 与 end 是 iterator 接口中常用迭代器,其中 begin 迭代器指向字符串 str1 的首元素位置,end 迭代器指向字符串 str1 的尾元素的下一个位置

在这里插入图片描述
其中,使用 iterator 接口可以进行元素指向内容的修改:

string str1="12345";
string::iterator it=str1.begin();
while(it!=str1.end()){
*it=‘a’;
cout<<*it<<" ";
++it;
}
cout<<endl;

在这里插入图片描述
主要是因为这里使用的是 非 const 接口,因而可以进行字符串内容的修改,iterator 接口为可读可写。

2.只读型

倘若使用第二个 const 接口,在 debug 版本之下进行调试就会发生中断操作,但是在 Release 版本之下不会报错:
在这里插入图片描述
在这里插入图片描述
主要是因为这里使用了const 修饰,因而字符串内容是不可以利用引用类型来修改,此时 iterator 接口是只读型接口。

(二)cbegin 接口与 cend 接口

const_iterator cbegin() const
const_iterator cend() const

可以看出来这两个接口都是被 const 修饰,因而cbegin / cend 都是只读迭代器,不可以修改其内容

在这里插入图片描述
当使用 *it 来修改字符串内容时,出现了错误提示

(三)rbegin / rend 接口

rbegin 与 rend 是反向迭代器,rbegin:指向最后一个元素的位置;rend:指向第一个元素的前一个位置
在这里插入图片描述
接口说明:

reverse_iterator rbegin();
const_reverse_iterator rbegin() const;
reverse_iterator rend();
const_reverse_iterator rend() const;

在这里插入图片描述

三、范围 for

for(当前需要查找的遍历:需要遍历的容器)

常见范围 for 书写形式:
1.只读:for(const auto& 变量:需要遍历容器)
2.可读可写:for(auto& 变量:需要遍历的容器)

void test()
{
string s = "13456";
for (char ch : s) {
cout << ch << " ";
}
cout << endl;
}

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

在进行练习时候要注意是否被 const 修饰(可读可写 / 只读),注意正确的调用接口

今天的分享就到此结束了,有任何问题可以留言哦~~

美好的一天从敲代码开始 ,加油!
biubiubiu~~~~

最后

以上就是落寞黑猫为你收集整理的C++中遍历字符串一、普通 for 循环遍历二、C++中迭代器的使用三、范围 for 的使用的全部内容,希望文章能够帮你解决C++中遍历字符串一、普通 for 循环遍历二、C++中迭代器的使用三、范围 for 的使用所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(178)

评论列表共有 0 条评论

立即
投稿
返回
顶部