gpt4 book ai didi

C++ 根据两个数据成员对对象进行排序

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:11:03 24 4
gpt4 key购买 nike

我知道您可以将用户定义的类插入到 std::vector 中然后重载排序机制,以便它在特定数据成员上进行比较。但是,您将如何对 std::vector<MyClass> 进行排序?其中 MyClass有两个数据成员并且您想在第二个数据成员上添加“第二级”排序?所以对数据成员 a 进行排序在哪里a相等,则按数据成员 b 排序?

最佳答案

使用 std::tuple 创建自定义比较器

    #include <tuple>
//..
struct comp
{
bool operator()(const MyClass& lhs, const MyClass& rhs) const
{
return std::tie(lhs.a, lhs.b) < std::tie(rhs.a, rhs.b);
}
};

它将首先使用a,然后是b

关于C++ 根据两个数据成员对对象进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19104153/

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