用了结构体,可能就更清晰了。
然后配合着sort的排序。本身没有什么复杂的地方。
注意:cin输入后,后边会保留一个换行符,然后getline忽略空格时,就会造成换行符被读入。所以在cin之后用getchar吸收换行符。
引用大佬的话:
#include<iostream>
#include<vector>
#include<string>
#include<algorithm>
using namespace std;
struct strl{
int size;
string s;
strl(int l,string ss):size(l),s(ss){}
bool operator <(const strl r)const{
return size<r.size;
}
};
vector<strl> vec;
string s;
int n;
int main(){
while(cin>>n){
getchar();
vec.clear();
while(n--){
getline(cin,s);
if(s=="stop")break;
vec.push_back(strl(s.size(),s));
}
sort(vec.begin(),vec.end());
for(auto i:vec)cout<<i.s<<endl;
}
return 0;
}


京公网安备 11010502036488号