C++中的string容器迭代器

以string类为例,有4种迭代器:正向迭代器、常对象正向迭代器、反向迭代器、常对象反向迭代器

string类迭代器文档:string - C++ Reference (cplusplus.com)

1.正向迭代器

对于普通对象的正向遍历,可使用迭代器:begin、end

string s1("i miss gjj");
string::iterator it = s1.begin();
while (it != s1.end())
{
    *it -= 1;
    cout << *it << " ";                                                                                                          
    ++it;
}
cout << endl;

2.常对象正向迭代器

对于常对象的正向遍历,不可修改常对象的内容,使用迭代器begin、end或cbegin、cend 

//begin   end 
const string s2("i love gjj");
 string::const_iterator it1 = s2.begin();
 while (it1 != s2.end())
 {
     cout << *it1 << " ";
     ++it1;
 }
 cout << endl;

//cbegin  cend
 string::const_iterator it2 = s2.cbegin();
 while (it2 != s2.cend())
 {
     cout << *it2 << " ";
     ++it2;
 }
 cout << endl;

3.反向迭代器

对于普通对象的反向遍历,可使用迭代器:rbegin、rend

string s3("i miss you");
string::reverse_iterator rit = s3.rbegin();
while (rit != s3.rend())
{
    *rit -= 1;
    cout << *rit << " ";
    ++rit;
}
cout << endl;

4.常对象反向迭代器

对于常对象的反向遍历,不可修改常对象内容,使用迭代器:rbegin、rend或者crbegin、crend

//rbegin   rend
const string s4("gjj miss i");
string::const_reverse_iterator rit1 = s4.rbegin();
while (rit1 != s4.rend())
{
    cout << *rit1 << " ";
    ++rit1;
}
cout << endl;

//crbegin   crend
string::const_reverse_iterator rit2 = s4.crbegin();
while (rit2 != s4.crend())
{
    cout << *rit2 << " ";
    ++rit2;
}
cout << endl;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

南林yan

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值