有没有办法用具有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组织信息的顺序吗?这可能吗?我无法弄明白。
答案 0 :(得分:3)
std::sort(Disks2[QueueNumber-1].begin(),Disks2[QueueNumber-1].end(),[](PCB a,PCB b){ return (a.retrieveCylinder()>b.retrieveCylinder());});
这应该可以正常工作。 注意:别忘了
#include <algorithm>