c++ stl string概述和常用函数详析

string   概述:


  • string 的定义
#include
#include 
using namespace std;
int main()
{
	string str="abc123"
}
  • string 的访问:
#include 
#include 
using namespace std;
int main()
{
	string str="123456";
	for(int i=0;i<str.length();i++)//size 和length 功能相同返回元素个数 
	
	{
		printf("%c",str[i]);
		
	}
	cout<<endl<<str<<endl; //cin 或者cout 直接访问
	for(string::iterator it=str.begin();it!=str.end();it++)//迭代器访问
	{
		printf("%c",*it);
	}
	cout<<endl;
	string::iterator it=str.begin();
	for(int i=0;i<str.size();i++)
	{
		printf("%c",*(it+i));//只有vector和string 才可以有*(it+i) 迭代器加
		//数字的操作
	}
}

string的常用函数介绍:

  • operator += : 将两个string 拼接起来
  • 比较运算符:比较两个string 的大小 (按照字典序)
  • size 、length :返回string 的元素个数
  • insert(position,information) : 在字符串指定位置 插入string
  • 想要在那两个元素之间插入,就从左到右数是第几个缝隙,参数1 =第几个缝隙
#include 
#include 
using namespace std;
int main()
{
	string str="123456";
	string str2="you";
	for(int i=0;i<str.length();i++)//size 和length 功能相同返回元素个数 
	
	{
		printf("%c",str[i]);
		
	}
	str.insert(3,"abc");
	cout<<endl<<str<<endl;
	str.insert(3,str2);//参数2  可以是字符串 但不可以是char 声明的字符
	cout<<str<<endl;
}
  • insert(it,it2,it3) 三个参数都是迭代器,第一个参数是插入位置缝隙的迭代器,第二三个参数是待插入信息string 的收尾迭代器,这两个迭代器可以不是待插入字符串的收尾,可以截取待插入字符串的一个片段
#include 
#include 
using namespace std;
int main()
{
	string str="123456";
	string str2="you";
	char a='o';
	for(int i=0;i<str.length();i++)//size 和length 功能相同返回元素个数 
	
	{
		printf("%c",str[i]);
		
	}
	cout<<endl;
	str.insert(str.begin()+3,str2.begin()+1,str2.end());//这里只有 ”ou“ 插入
	//了str
	cout<<str<<endl;
	str.insert(str.begin()+3,str2.begin(),str2.end()-3);//这里啥也没插入
	cout<<str<<endl;
}
  • 用法一:erase(it) :删除迭代器位置it 的单个数据
  • 用法二 :erase(it,it2):参数是迭代器,删除区间【first,last) 内的元素
  • 用法三:erase(position,count):参数是删除的位置(删除第几个缝隙后的元素),从左向右删除元素的个数
#include 
#include 
using namespace std;
int main()
{
	string str="123456";
	string str2="you";
	char a='o';
	for(int i=0;i<str.length();i++)//size 和length 功能相同返回元素个数 
	
	{
		printf("%c",str[i]);
		
	}
	cout<<endl;
	str.insert(str.begin()+3,str2.begin()+1,str2.end());
	cout<<str<<endl;
	str.erase(str.begin()+3);//用法1:删除了o  
	cout<<str<<endl;
	str.erase(str.begin()+3,str.begin()+5);//用法2:删除了u 和4 
	cout<<str<<endl;
	str.erase(3,2);//用法3:3号缝隙位往后删除2个元素,删除了5 6 
	cout<<str<<endl;
}
  • clear() ,清空所有元素;
  • substr(position,len) :从position 位开始返回len长度的子串
  • find(str1): 在string 中寻找子串str1,返回第一次出现的位置,如果没有就返回string::npos
  • string::npos 为-1 或者是 4294967295
  • find(str1,pos) 从str 的pos 位置开始寻找str1 ,时间复杂度位O(nm) ,
  • n,m 分别为str与,str1 的长度
  • replace
  • c++ stl string概述和常用函数详析_第1张图片

你可能感兴趣的:(算法学习,随笔,c++)