快排 怎么排string 类型呀

YUKUILONGQQ 2009-05-18 01:31:09
用 qsort快排
怎么排序 string 类型呀
比如 string ss;
cin>>ss;
ss="13456322";
我要得到 "1223456";
还有 C++ 类库里的 sort等排序函数
和 sqort函数 谁的性能比较好呀
...全文
138 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
chenzhp 2009-05-18
  • 打赏
  • 举报
回复
#include <iostream>
using namespace std;
int cmp ( const void *a , const void *b )
{
return *(char *)a - *(char *)b;
}
int main() {

string ss;
cin>>ss;
qsort((char*)ss.c_str(),ss.length(),sizeof(ss[0]),cmp);
cout << ss << endl;
return 0;
}
wangyadong 2009-05-18
  • 打赏
  • 举报
回复
sort()胜过qsort()的主要原因是,比较操作在内联(inlines)上做得更好。
wangyadong 2009-05-18
  • 打赏
  • 举报
回复
在元素与比较方式(comparison criteria)都相同的情况下,sort()比qsort()更快,qsort()是通用的,它可以用于不同容器类型、元素类型、比较方式的任意有意义的组合。
liao05050075 2009-05-18
  • 打赏
  • 举报
回复
你所说的东西里,sort是效率最高的。
既然是用C++,那就用sort吧。
qsort是C的东西,最好还是不要用来排序C++ string类
lingyin55 2009-05-18
  • 打赏
  • 举报
回复

string ss="13456322";
vector<string> vec( ss[0],ss[8] );
sort(vec.begin(),vec.end());
wangyadong 2009-05-18
  • 打赏
  • 举报
回复
string ss;
ss="128456";

sort(ss.begin(),ss.end());
Paradin 2009-05-18
  • 打赏
  • 举报
回复
<stdlib.h>
qsort

65,211

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

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