stable_sort()可以對vector的某個成員進(jìn)行排序,而且可保證相等元素的原本相對次序在排序后保持不變。
下面是該函數(shù)的實現(xiàn)方法代碼:
#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;}其結(jié)果如下:
   輸入: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
新聞熱點
疑難解答
圖片精選