首页 > 编程 > C++ > 正文

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

2019-11-11 06:25:17
字体:
来源:转载
供稿:网友

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


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

图片精选