在用vector排序的时候,发现sort()函数有一个问题,sort排序只会返回排序后的结果,不会返回每个排序后的结果在原来的编号。
//template
bool cmp(const pair
&x,const pair
&y) { return x.second > y.second; } //template
void sortVector(vector
&value, vector
&lable) { lable.clear(); // 定义一个键值对的数组,第一个Int是键,第二个Int是值 vector
> theMap; for(vector
::size_type i=0; i
>::size_type i=0; i
上述代码可以解决这个问题,上段代码的调用方式如下:
?
vector
a;
a.push_back(1);
a.push_back(2);
a.push_back(4);
a.push_back(3);
vector
lable; sortVector( a, lable); cout<
原理其实很简单,就是把数据与编号组成一个键值对,然后把这些键值对定义成一个vector<>变量,再用sort函数对vector排序就OK了。
?
?