STL笔记--string类

STL标准模板库
是C++标准库的重要组成部分
是一个包罗数据结构预算法的软件框架

string类

#include<string>
using namespace std;
void test()
{
/*default(1)
string();*/
//创建空的string对象
string str;
/*copy(2)
string(const string& str);*/
string copy(str);
substring(3)
 string(const string& str,size_t pos,size_t len =npos);
string str5="abcde";//单参构造的隐式类型转换

str5=str4;
str5="123";
str5='b';

const string str="12345";
string str2=12345”;
//const对象,调用接口:const char& oprator[](size_t pos)const
char ch=str[3];
const char& ref=str[3];
/*ref='c';
str[3]='a';*/
//非const对象,调用接口:char&  operator[](size_t pos)
char& ref2=str2[3];
str2[3]='a';
str2.at(3)='b';
//[]越界:报断言错误
char ch2=str2[10];
//at 接口越界:抛异常
char ch2=str2.at(10);
}

迭代器
设计模式–>元素访问的一种设计模式
所有容器都需要遵循相同的设计规范
所有容器迭代器的使用方式都是相同的
怎么使用?
迭代器的指针方式和指针类似
设计规范:
1.begin迭代器:指向第一个元素的位置
2.end迭代器:指向最后一个元素的末尾
3.访问数据:通过解引用完成*,->
4.迭代器移动:++移动到下一个元素的位置,–移动到上一个元素的位置
5位置的判断:支持!=,==
有些容器具有反向迭代器
6.rbegin迭代器:指向最后一个元素的位置
7.rend迭代器:指向第一个元素的前一个位置

void test()
{
	string str="12345";
	//起始位置的迭代器
	string::iterator it=str.begin();
	for(;it!=str.end();++i)
	{
	//迭代器的解引用
	cout<<*it<<"";
	//可以通过迭代器进行内容的修改
	}
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值