stable_sort
stable_sort()可以对vector的某个成员进行排序,而且可保证相等元素的原本相对次序在排序后保持不变。
#include <iOStream>
#include<math.h>
#include <string>
#include <vector>
#include <iterator>
#include <algorithm>
using namespace std;
typedef struct TagNode
{
int value;
int index;
}Node;
bool myCmp(const Node& a, const Node& b)
{
return a.value < b.value;
}
int main(int argc, char **argv)
{
vector<Node> vtNode;
vtNode.clear();
Node tmp;
int idx = 0, num;
while(cin >> num && num)
{
++idx;
tmp.value = num;
tmp.index = idx;
vtNode.push_back(tmp);
}
stable_sort(vtNode.begin(), vtNode.end(), myCmp);
cout << "Index\tValue:" << endl;
vector<Node>::iterator pos;
for(pos = vtNode.begin(); pos != vtNode.end(); ++pos)
{
cout << pos->index << "\t" << pos->value << endl;
}
return 0;
}
其结果如下:
输入:98 34 6 3 8 1 100 45 66 88 202
输出:
Index Value:
6 1
4 3
3 6
5 8
2 34
8 45
9 66
10 88
1 98
7 100
11 202
相关阅读
algorithm库介绍之---- stable_sort()方法 与 sort()
文章转载自:http://www.cnblogs.com/ffhajbq/archive/2012/07/24/2607476.html关于stable_sort()和sort()的区别:你发现有sort和sta
网上关于sort qsort stable_sort 等排序函数的介绍已经很多了,因为前几天用到对STL vector 结构体的排序,遇到的问题记录一下。在c