c++ - 基于类中的变量对 vector 进行排序

标签 c++ sorting vector

<分区>

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

假设我有这个 vector 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 进行排序?我想让Vector根据Cylinder来组织信息的顺序?这可能吗?我想不通。

最佳答案

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

这应该可以正常工作。 注意:不要忘记

#include <algorithm>

关于c++ - 基于类中的变量对 vector 进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23235752/

相关文章:

MATLAB:函数返回单个值而不是向量

c++ - 区分STL容器

c++ - makefile 找不到 .o 文件

c++ - QT中如何自定义 "Notification Web API"

c++ - 在条件后从特定节点生成新消息

c - 在 C 中,我在将文件中的元素从最大到最小排序的算法上遇到问题

python - 我怎样才能 "zip sort"并行 numpy 数组?

java - 如何对一个对象(实际上是一个数组)进行排序

arrays - 如何在不复制元素的情况下将 Vec 转换为数组?

c++ - 插入多个元素时 vector 大小仅增加一