c++ - 对多个字段的元素进行排序

标签 c++ sorting vector data-structures

如果我有一个 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/

相关文章:

c++ - 跨平台实时 MP3 录音机

c++ - 返回对类变量的引用 - C++

c++ - 由于安装(EXPORT "foo-targets"...)在导出集中多次包含目标 "foo",aws-cpp-sdk 在 Windows 构建期间失败

c++ - 冒泡排序算法实现

C++ 多维排序

c++ - C++中的匿名类

c - 使用它们的比率对数组进行排序

c++ - 嵌套 vector 不遵循提升规则。解决方案有一个错误。

java - 变换+缩放一组点

c++ - 如何在两个类型定义 vector 上使用指针进行访问