C++排序之stable_sort()的方法

来源:互联网 发布:什么是对零件的编程 编辑:程序博客网 时间:2024/06/06 05:09

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


0 0
原创粉丝点击