gpt4 book ai didi

c++ - 在 C++ 中,是否可以根据这些对象的任何属性轻松地对对象类型指针的 vector 进行排序?

转载 作者:太空狗 更新时间:2023-10-29 19:37:12 24 4
gpt4 key购买 nike

是否可以根据这些对象的任何属性轻松地对对象类型指针的 vector 进行排序?

假设 students 是对象类型指针的 vector ,当对象 studentStudent 类型并且有两个方法 student.studentAlias()student.studentName()。如何根据别名对 vector 进行排序?

提前致谢。

最佳答案

你可以使用仿函数:

#include <vector>
#include <algorithm>

class StudentAliasComparator
{
public:
bool operator()(const Student* left, const Student* right) const
{
return left->studentAlias() < right->studentAlias();
}
};

void SortVectorOfStudentByAlias(std::vector<Student*>& students)
{
std::sort(students.begin(), students.end(), StudentAliasComparator());
}

您还可以从 boost 或语言中使用 lambda(如果您使用 C++0x)。使用 C++0x 语法,它类似于(无法检查,因为我现在无法访问支持 C++0x 的 C++ 编译器):

void SortVectorOfStudentByAlias(std::vector<Student*>& students)
{
std::sort(students.begin(), students.end(),
[](const Student* l, const Student* r) {
return l->studentAlias() < r->studentAlias(); })
}

关于c++ - 在 C++ 中,是否可以根据这些对象的任何属性轻松地对对象类型指针的 vector 进行排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5274542/

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