基于变量类的排序向量

时间:2014-04-23 05:47:01

标签: c++ sorting vector

有没有办法用具有int变量的类对向量进行排序?我希望我的矢量在控制台中排序和打印。

说我有这个向量vector<PCB> Disks2;

我有这个课程

class PCB
{
public:
    void setPID (int a)
    {
        PID = a;
    }
    int retrievePID()
    {
        return PID;
    }
    void setFilename (string input)
    {
        Filename = input;
    }
    string retrieveFilename()
    {
        return Filename;
    }
    void setMemstart (int a)
    {
        Memstart = a;
    }
    int retrieveMemstart()
    {
        return Memstart;
    }
    void setRW (char a)
    {
        rw = a;
    }
    char retrieveRW()
    {
        return rw;
    }
    void setFilelength (int input)
    {
        Filelength = input;
    }
    int retrieveFilelength()
    {
        return Filelength;
    }
    int retrieveCylinder()
    {
        return Cylinder;
    }
    void setCylinder (int a)
    {
        Cylinder = a;
    }

private:
    int PID;
    string Filename;
    int Memstart;
    char rw;
    int Filelength;
    int Cylinder;
};

如何根据Cylinder int对该向量进行排序?我希望Vector能够根据Cylinder组织信息的顺序吗?这可能吗?我无法弄明白。

1 个答案:

答案 0 :(得分:3)

std::sort(Disks2[QueueNumber-1].begin(),Disks2[QueueNumber-1].end(),[](PCB a,PCB b){ return (a.retrieveCylinder()>b.retrieveCylinder());});

这应该可以正常工作。 注意:别忘了

#include <algorithm>