C++ STL string迭代器以及两个常用算法

​

//迭代器以及两个常用算法 
#include<iostream>
#include<string>
#include<algorithm> 

using namespace std;

void FunIterator(){
	//迭代器 
	
	string str1("abcdefg");
	
	string::iterator ite;		//char型的指针
	 
	ite=str1.begin();		//end();end指向字符串末尾元素的下一个位置 
	for(int i=0;i<str1.size();i++){
		cout << ite[i] << " ";
	}
	cout << endl;
	for(ite;ite!=str1.end();ite++){
		*ite='a';		//也可以进行赋值 
		cout << *ite << " ";
	} 
	
	//如果重新分配空间,迭代器会失效  
	
	
}

void TextIterator(){
	
	string str1("abcdefg");
	string str2("efg");
	
	//str1.append(str2.begin()+2,str2.end());		//尾部添加 
	
	//str1.erase(str1.begin()+2,str1.end()-2);		//删除
	
	//str1.insert(str1.begin()+1,3,'N');      		//在str1.begin()+1的位置前插入3个'N'
		 
	str1.insert(str1.begin()+1,str2.begin()+1,str2.end());
								// 在str1.begin()+1的位置前插入str2的一段 
	
	cout <<str1 << endl;
	
	//string::iterator() ite;
	
}

void fun(char c){
	//参数类型与对象类型一致 
	cout << c << " ";
}

void FunForeach(){
	
	string str1("adasdegyutyb");
	
	for_each(str1.begin(),str1.end(),fun);
	cout << endl;
	//前两个参数是遍历的范围,最后一个参数是一个定义的函数
	//函数里面可以做你想做的事儿
	
	sort(str1.begin(),str1.end());//默认从小到大 
	cout << str1 << endl;
	 
	sort(str1.begin(),str1.end(),greater<char>());	//加一个参数可以从大到小 
	cout << str1 << endl; 
	
} 

int main(){
	
	//FunIterator(); 
	
	//TextIterator();
	
	FunForeach();
	
	return 0;
}

[点击并拖拽以移动]
​

猜你喜欢

转载自blog.csdn.net/lesileqin/article/details/82779168