# algorithm库介绍之---- stable_sort()方法 与 sort()方法

8394人阅读 评论(1)

bool less_len(const string &str1, const string &str2)
{
return str1.length() < str2.length();
}

#include <vector>
#include <iostream>
#include <algorithm>

using namespace std;

bool comp_as_int(double i, double j)
{
return (int(i)<int(j));
}

int main()
{
double mydoubles[] = {3.14, 1.41, 2.72, 4.67, 1.73, 1.32, 1.62, 2.58};
vector<double> v;
vector<double>::iterator it;

v.assign(mydoubles, mydoubles + 8);

cout<<"use default comparison:"<<endl;
stable_sort(v.begin(), v.end());

for(it = v.begin(); it != v.end(); it++)
cout<<*it<<" ";
cout<<endl;

cout<<"use selfdefined comparison function comp_as_int():"<<endl;
v.assign(mydoubles, mydoubles + 8);
stable_sort(v.begin(), v.end(), comp_as_int);

for(it = v.begin(); it != v.end(); it++)
cout<<*it<<" ";
cout<<endl;
cout<<"if it is not sorted with stable_sort(), the sequence of all elements between 1 and 2 will be set randomly..."<<endl;

return 0;
}

1 use default comparison:
2 1.32 1.41 1.62 1.73 2.58 2.72 3.14 4.67
3 use selfdefined comparison function comp_as_int():
4 1.41 1.73 1.32 1.62 2.72 2.58 3.14 4.67
5 if it is not sorted with stable_sort(), the sequence of all elements between 1 and 2 will be set randomly...

7
2

* 以上用户言论只代表其个人观点，不代表CSDN网站的观点或立场
个人资料
• 访问：468448次
• 积分：4821
• 等级：
• 排名：第6237名
• 原创：29篇
• 转载：139篇
• 译文：1篇
• 评论：59条
保存为PDF
评论排行
最新评论