c ++排序对象向量

时间:2013-10-24 10:24:47

标签: c++ sorting vector

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

我的对象由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();
    }

1 个答案:

答案 0 :(得分: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])
}