gpt4 book ai didi

c++ - 根据数据成员排序或过滤对象数组

转载 作者:太空狗 更新时间:2023-10-29 23:50:30 24 4
gpt4 key购买 nike

是否有一种标准方法可以根据数据成员或成员函数对对象数组进行排序或过滤?

我在下面的代码中寻找像 getLowestValue 这样的标准函数:

class Grade
{
public:
Grade() : _grade(0) {}

void setGrade(int i) { _grade = i; }
int getGrade() const { return _grade; }

private:
int _grade;
}

int main()
{
Grade grades[10];

for(int i = 0; i < 10; i++)
grades[i].setGrade(generateRandomNumber());

Grade *lowestGrade = getLowestValue(grades, Grade::getGrade); //???

std::cout << "lowest grade: " << lowestGrade->getGrade() << std::endl;

return 0;
}

最佳答案

要排序,您可以使用 std::sort() 并找到最小值 std::min_element() .

在这两种情况下,您都必须实现 operator<或创建比较函数。

operator< 的示例

inline bool operator< (const Grade& left, const Grade& right){ 
return left.getGrade() < right.getGrade();
}

std::min_element() 的用法:

Grade result = *std::min_element(std::begin(grades), std::end(grades));

std::sort() 的用法:

std::sort(std::begin(grades), std::end(grades));

您必须包括:#include <algorithm>

关于c++ - 根据数据成员排序或过滤对象数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29731906/

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