、給一組字符串,需要你輸出最小長度的字符串與最大長度的字符串,如果有相同最小(大)長度的,就按照給的順序挨個輸出。


//給一組字符串,需要你輸出最小長度的字符串與最大長度的字符串,如果有相同最小(大)長度的,就按照給的順序挨個輸出。
//例如:qwert asdfg sdf erd jkjkljsldfwr dfdf//
//就輸出sdf erd jkjkljsldfwr

//-1說明了vector是默認從0開始的,index序號爲0


<span style="font-family: Arial, Helvetica, sans-serif;">#include <string></span>
#include<algorithm>
#include <iostream>
#include<vector>
using namespace std;

vector<string>vec_String;
vector<string>::iterator it;

bool compare_Fun(string a,string b)
{
	return a.length()<b.length();
}
int _tmain(int argc, _TCHAR* argv[])
{

	int string_Num;
	string input_String;
	int short_Strlength;
	int long_Strlength;
	
	cin>>string_Num;
	
	for(int i=0;i<string_Num;i++)
	{
		cin>>input_String;
		vec_String.push_back(input_String);
	}

	sort(vec_String.begin(),vec_String.end(),compare_Fun);

	for(it=vec_String.begin();it<vec_String.end();it++)
			cout<<*it<<"--->";

	//第一個和最後一個的長度就是最大和最小的長度
	//再次循環長度一致,輸出
	short_Strlength=vec_String.at(0).length();
	long_Strlength=vec_String.at(vec_String.size()-1).length();

	for(it=vec_String.begin();it!=vec_String.end();it++)
	{

		if((*it).length()==short_Strlength)
			cout<<*it<<" ";
		else if((*it).length()==long_Strlength)
			cout<<*it<<" ";
	}

	//cout<<"最短的"<<vec_String.at(0)<<"最長的"<<vec_String.at(vec_String.size()-1)<<endl;

	vec_String.clear();//另一個想法是每次循環時候定義一個vector,結束後析構掉;
	
	system("pause");
	return 0;
}



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章