C++ STL容器——string

文章目录


前言

 我们开始学习C++的一个重要部分,C++标准模板库(STL)。

今天,我们就从STL容器——string开始吧


一、string是什么?

string 是STL 中的一种容器,可以用于存储字符串,通过丰富的成员函数可以便捷地对string类对象进行操作。

二、string的使用

1.string类对象的实例化

string类支持构造空对象,传字符字符串构造,传n个字符构造

示例:

string s;string s('a');string s("abc");string s(10,'a');

也支持拷贝其他对象构造

示例:

string s(s1);

 还支持赋值运算符

示例:

s = s1;

2.迭代器与遍历

迭代器这一概念贯穿STL的容器,其再用法上类似于指针,可以通过它访问容器中的各个数据,值得注意的是,string的迭代器在底层实现上就是char*

迭代器总体上分为四种:正向迭代器,反向迭代器,const迭代器,反向const迭代器

迭代器示例:

string::iterator it = s.begin();
//begin()的返回值是迭代器类型的,指向容器的首个数据
//end()的返回值是迭代器类型的,指向容器的最后一个数据的下一个
while(it != s1.end())   
         
{    
    *it -= 1;//通过对迭代器解引用,可以像指针一样更改(非const)迭代器的值
    ++it;    //迭代
}//这样我们就实现了对string类对象的遍历

C++11中,使用范围for也可以实现对string容器的遍历

值得注意的是,范围for本质上也是通过迭代器实现的

示例:

for(auto ch:s1)
{
    cout<<ch<<" ";
}
cout<<endl;

string容器支持通过[ ]实现像数组一样的随机访问,其实通过对[]的重载实现的


3.插入删除

可以通过push_back()函数实现尾插一个字符

通过pop_back()实现尾删

示例:

string s;
s.push_back('a');
s.pop_back();
s.push_back('b')

也可以通过append()函数实现尾插一个字符串

示例:

string s;
s.append("abcd");

还可以通过+=操作符的重载实现尾插一个字符或字符串

示例:

string s;
s+='a';
s+="bc";

通过insert()函数实现在指定位置插入一个字符,字符串,其他的string对象

通过erase()函数实现在指定位置删除指定长度的字符


4.其他操作

string函数还有很多其他成员函数:

size(),length()——获得字符串长度

capacity()——获得字符串容量

back()——获得最后一个字符

c_str()——获得c类型的字符串

find(),rfind()——正反找到字符串中指定的字符,并返回对应位置的迭代器

reserve(),resize()——扩充字符串大小(resize可用指定字符初始化新空间)

reverse()——把指定迭代器之间的字符串逆置

..........................

<string> - C++ Reference

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值