<分区>
我想按大小对字符串 vector 进行反向排序,但如果有 2 个长度相等的字符串,我希望它们保持原来的顺序。例如:对以下字符串集进行排序:-
aab
aac
aacghgh
aabghgh
应该产生:-
aacghgh
aabghgh
aab
aac
目前我正在做如下排序:-
struct comp_functor {
bool operator()(const string& s1, const string& s2) {
return s1.size() > s2.size();
}
};
struct comp_functor c;
vector<string> vecs;
sort(vecs.begin(), vecs.end(), c);
有没有办法在重载方法中指定如果它们具有相同的长度我想保留原始顺序?如果没有,使用 STL 库解决此问题的最佳方法是什么?