2013-10-24 139 views
0

我有一个关于对象在向量中排序的问题C++排序对象矢量

我的对象由x,y和civ组成。所以我想知道我怎么在从大到小的顺序,但在同一时间保存的X和Y连接到它的价值排序的文明的价值..

original 
X: 4 Y: 5 CIV: 10 
X: 3 Y: 2 CIV: 30 
X: 3 Y: 3 CIV: 05 

sorted 
X: 3 Y: 2 CIV: 30 
X: 4 Y: 5 CIV: 10 
X: 3 Y: 3 CIV: 05 

missionplan.cpp

for(int j=0; j < 5; j++) 
    { 
     for(int i = j; i < topfive.size(); i++) 
     { 
      if(topfive[i].getcivIndex() < topfive[i].getcivIndex) 
      { 
       topfive[i].swap(topfive[i]); 

      } 
     } 
     pointtwoD = topfive.at(i);//display all data starting from the first index 
     pointtwoD.displayPointdata(); 
    } 
+2

阅读['std :: sort'](http://en.cppreference.com/w/cpp/algorithm/sort)。 –

回答

0

你的代码中有一个错误。

if(topfive[i].getcivIndex() < topfive[i].getcivIndex) //The second i should be j 
{ 
    topfive[i].swap(topfive[i]); // which should be topfive[j].swap(topfive[i]) 
}