首页主机资讯如何用C++实现less复杂比较

如何用C++实现less复杂比较

时间2024-09-14 22:04:03发布访客分类主机资讯浏览1462
导读:在 C++ 中,你可以通过重载 operator< 来实现复杂的比较操作。这里有一个简单的例子,展示了如何为一个自定义结构体实现 less 比较操作: #include<iostream> #include<vect...

在 C++ 中,你可以通过重载 operator< 来实现复杂的比较操作。这里有一个简单的例子,展示了如何为一个自定义结构体实现 less 比较操作:

#include<
    iostream>
    
#include<
    vector>
    
#include<
    algorithm>


struct Person {
    
    std::string name;
    
    int age;

}
    ;
    

// 重载 operator<
     运算符
bool operator<
    (const Person &
    a, const Person &
b) {
    
    // 先比较年龄
    if (a.age <
 b.age) {
    
        return true;

    }
     else if (a.age >
 b.age) {
    
        return false;

    }
 else {
    
        // 如果年龄相同,则按名字的字母顺序排序
        return a.name <
     b.name;

    }

}


int main() {
    
    std::vector<
    Person>
 people = {
{
"Alice", 30}
, {
"Bob", 25}
, {
"Charlie", 30}
}
    ;
    

    // 使用 std::sort 对 people 进行排序
    std::sort(people.begin(), people.end());
    

    // 输出排序后的结果
    for (const auto &
person : people) {
    
        std::cout<
    <
     person.name <
    <
     " "<
    <
     person.age<
    <
     std::endl;

    }
    

    return 0;

}
    

在这个例子中,我们定义了一个 Person 结构体,并重载了 operator< 运算符。这个运算符首先比较两个 Person 对象的年龄,如果年龄相同,则按照名字的字母顺序进行排序。然后我们使用 std::sort 函数对一个包含 Person 对象的 std::vector 进行排序,并输出排序后的结果。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: 如何用C++实现less复杂比较
本文地址: https://pptw.com/jishu/699418.html
如何在C++中正确使用less C++ less如何用于自定义排序

游客 回复需填写必要信息