C ++迭代器iterator在string中使用方法介绍
一、正向迭代器

【例子】
//正向迭代器
void test1()
{
string str1 = "abcdef";
cout << "读取字符串:" << endl;
string::iterator it1 = str1.begin();
while (it1 != str1.end())
{
cout << *it1 << " ";
it1++;
}
cout << endl;
cout << "每个字母向后移动一位:" << endl;
string::iterator it2 = str1.begin();
while (it2 != str1.end())
{
*it2 +=1;
cout << *it2 << " ";
it2++;
}
cout << endl;
}【运行结果】

二、正向迭代器(只读数据)
const_iterator begin( ) const;
这种迭代器,只支持读,不支持修改数据。
【例子】
//只读正向迭代器
void test2()
{
const string str1 = "abcdef";
cout << "只能读取字符串:" << endl;
string::const_iterator it1 = str1.begin();
while (it1 != str1.end())
{
cout << *it1 << " ";
it1++;
}
cout << endl;
}
【问题】
为什么不能直接在 string::iterator it 前面加const?
答:这样的话,const修饰的是it,it将无法被修改,并不是*it无法被修改。
it无法被修改的后果是无法遍历。
三、反向迭代器

作用:从后往前读。
【例子】
//反向迭代器
void test3()
{
string str1 = "abcdef";
cout << "反向读取字符串:" << endl;
string::reverse_iterator it1 = str1.rbegin();
while (it1 != str1.rend())
{
*it1 += 1;
cout << *it1 << " ";
it1++;
}
cout << endl;
}
【运行结果】

四、反向迭代器(只读)
【例子】
//反向迭代器(只读)
void test4()
{
const string str1 = "abcdef";
cout << "反向只读读取字符串:" << endl;
string::const_reverse_iterator it1 = str1.rbegin();
while (it1 != str1.rend())
{
cout << *it1 << " ";
it1++;
}
cout << endl;
}五、auto来替换这些特别长类型名
是不是感觉这些类型名特别长?别担心,用auto试试。
//auto
void test5()
{
cout << "auto的演示" << endl;
const string str1 = "abcdef";
cout << "反向只读读取字符串:" << endl;
auto it1 = str1.rbegin();
while (it1 != str1.rend())
{
cout << *it1 << " ";
it1++;
}
cout << endl;
}
到此这篇关于C ++迭代器iterator在string中使用方法介绍的文章就介绍到这了,更多相关C ++迭代器iterator内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
c++中vector<int>和vector<int*>的用法及区别
这篇文章主要介绍了c++中vector<int>和vector<int*>的用法及区别,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教2013-10-10
C++编程语言中赋值运算符重载函数(operator=)的使用
本文主要介绍了C++编程语言中赋值运算符重载函数(operator=)介绍,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧2022-06-06
C语言中字符和字符串处理(ANSI字符和Unicode字符)
这篇文章主要介绍了C语言与C++中字符和字符串处理(ANSI字符和Unicode字符)的详细内容,非常的全面,这里推荐给大家,希望大家能够喜欢。2015-03-03


最新评论