#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int main() {
int n;
cin >> n;
vector<string> dic;
string str;
while(cin >> str) {
dic.push_back(str);
}
sort(dic.begin(), dic.end(), [](const string& a, const string& b){
int n = min(a.size(), b.size());
for(int i = 0; i < n; ++i) {
if(a[i] == b[i]) {
continue;
} else {
return a[i] < b[i];
}
}
return a.size() < b.size();
});
for(string s: dic) {
cout << s << endl;
}
return 0;
}
写完lambda表达式之后才发现多此一举了 直接sort(dic.begin(), dic.end())默认就是字典序排列了……



京公网安备 11010502036488号