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<<"";
	//可以通过迭代器进行内容的修改
	}
}

猜你喜欢

转载自blog.csdn.net/qq_43609421/article/details/114789098
今日推荐