C++中vector的排序问题

2015-11-21 00:58:05 · 作者: · 浏览: 6
在用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了。
                

?

?