stable_sort 似乎并没有按字典序来排列size一样的string

flagoop 2018-01-21 10:14:44
bool isShorterTest(const string &s1, const string &s2)
{
return s1.size() < s2.size();
}
int main()
{
vector<string> vecStr{ "c","a","zz","fuck","low" };
//sort(vecStr.begin(), vecStr.end(),isShorterTest);
stable_sort(vecStr.begin(), vecStr.end(), isShorterTest);
for (auto &e:vecStr)
{
cout << e << endl;
}
}
...全文
599 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
jiht594 2018-01-30
  • 打赏
  • 举报
回复
引用 2 楼 flagoop 的回复:
c++primer 5th上是这么说的,不过我还是以实际为主吧,我测试了很多,没有看到有字典排序的迹象
哪一页?
zilaishuichina 2018-01-30
  • 打赏
  • 举报
回复
谁说stable_sort 是按字典序 排序的。。。。。 stable_sort是相等元素,保持原有顺序不变,比如你的 "c","a"这两个字符串, 他们的size是一样的, 那么排完序之后, 依然保持原有顺序, 就是 "c", 依然排在 “a”的前面
zilaishuichina 2018-01-30
  • 打赏
  • 举报
回复
你这明明是按字符串长度排序啊。。。。。
flagoop 2018-01-22
  • 打赏
  • 举报
回复
c++primer 5th上是这么说的,不过我还是以实际为主吧,我测试了很多,没有看到有字典排序的迹象
jiht594 2018-01-22
  • 打赏
  • 举报
回复
哪里有说会按字典排序。你看错了吧

15,440

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 非技术区
社区管理员
  • 非技术区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧