我想按大小对字符串向量进行反向排序,约束条件是如果有2个相等长度的字符串,我希望它们保留原始顺序.例如:对以下字符串集进行排序: -
aab
aac
aacghgh
aabghgh
Run Code Online (Sandbox Code Playgroud)
应该产量: -
aacghgh
aabghgh
aab
aac
Run Code Online (Sandbox Code Playgroud)
目前我正在进行如下排序: -
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);
Run Code Online (Sandbox Code Playgroud)
有没有办法在重载方法中指定我想保留原始排序,如果它们具有相同的长度?如果没有,那么使用STL库解决这个问题的最佳方法是什么?