首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >c++中的排序比较器

c++中的排序比较器
EN

Stack Overflow用户
提问于 2020-07-30 01:21:27
回答 1查看 46关注 0票数 0

我必须按长度对字符串进行排序。例如:

输入:“保持冷静,继续编码”

预期输出:“开启并保持冷静的代码”

第一个比较器是: return s1.length()<=s2.length();

输出:"On and code calm keep“

第二个比较器是: return s1.length()

输出:“开启并保持冷静代码”

输出如何随两个比较器中相等的变化而变化。我搞不懂比较器函数是如何在内部工作的。

EN

回答 1

Stack Overflow用户

发布于 2020-07-30 01:42:39

使用std::stable_sort。它不会改变相等元素的顺序。

代码语言:javascript
复制
std::vector<std::string> vec = { "Keep" , "calm",  "and", "code", "on" };
std::stable_sort(vec.begin(), vec.end(), [](const std::string& s1, const std::string& s2) { return s1.size() < s2.size(); });
for (const auto& v : vec) {
    std::cout << v << std::endl;
}

Output:
on
and
Keep
calm
code
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63159097

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档