2013-10-24 138 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]) 
}