使用选择排序对对象数组进行排序c++

Using a selection sort to sort an array of objects c++

本文关键字:排序 c++ 数组 选择 对象      更新时间:2024-05-11

目前,我已经编写了一个基本的选择排序,我需要让它根据类成员对对象数组进行排序-如果对守门员[MAX_goalies].getWins((进行排序,那么getWins(((中的整数需要按降序排列。以下是到目前为止我对排序功能的了解:

void sortWins(int array[], int size)
{
int maxIndex, maxValue;

for (int start=0;start<(size -    1);start++)
{
maxIndex = start;
maxValue = array[start];
for (int index = start + 1; index < size; index ++)
{
if (array[index].getWins() > maxValue.getWins())
{
maxValue = array[index];
maxIndex = index;
}
}
swap(array[maxIndex], array[start]);
}
}

如何确保sort函数正在对类成员getWins((进行排序?

您可以使用std::sort函数,指定所需的排序条件。一个可能的例子是:

std::sort(objectsVector.being(), objectsVector.end(), [](object a, object b) -> bool {
return a.getWins() > b.getWins();
});

通过这种方式,在objectsVector中,您将成为对象列表,按降序排列。

如果要使用实现选择排序的自定义函数,则必须向该函数传递一个对象数组,而不是整数。然后在函数内部,您将对getWins((返回的值进行比较