如果我有一个 vector ,它是一个动态数组,它有许多类类型的元素。这意味着每个元素都有很多数据成员。如何使用 C++ 中的内置排序函数根据指定的数据成员按升序对该 vector 进行排序?还是在这种情况下我必须自己实现?
最佳答案
您可以使用 std::sort 并指定其比较函数。如果您有以下类(class):
class ExampleClass{
public:
int A;
int B;
};
您可以通过执行以下操作使用 A 对这些类的 vector 进行排序:
#include <algorithm>
...
std::sort(exampleVector.begin(), exampleVector.end(), [](const ExampleClass& lhs, const ExampleClass& rhs){
return lhs.A < rhs.A;
});
关于c++ - 对多个字段的元素进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59232624/