gpt4 book ai didi

c++ - 根据类私有(private)成员对包含类的列表进行排序

转载 作者:行者123 更新时间:2023-11-28 03:07:55 25 4
gpt4 key购买 nike

我有一个包含类的列表

list<PointTwoD> point

这是我的类(class)声明

class PointTwoD:public locationdata
{
public:
PointTwoD();
PointTwoD(string,int,int,float,float,int,int);

void set_x(int);
int get_x();

void set_y(int);
int get_y();

void set_civIndex(float);
float get_civIndex();

friend class MissionPlan;

private:
int x;
int y;
float civIndex;

};

我正在尝试根据私有(private)成员 civIndex 对列表进行排序。我试过调用列表上的排序功能,但它不起作用。有人可以告诉我如何根据私有(private)成员 civIndex 的值对列表进行排序吗??

最佳答案

您可以通过在您的类中添加一个小于操作符来做到这一点:

  bool operator<(const PointTwoD& other) const
{
return civIndex < other.civIndex;
}

如果您不想要通用的小于运算符但仍需要对列表进行排序,您可以提供一个执行相同操作的比较函数:

bool compare_PointTwoD(const PointTwoD& first, const PointTwoD& second)
{
return first.get_civIndex() < second.get_civIndex();
}

然后像这样调用排序:

std::list<PointTwoD> lpt;
lpt.sort(compare_PointTwoD);

关于c++ - 根据类私有(private)成员对包含类的列表进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19238342/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com