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

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

在 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 进行排序,并输出排序后的结果。

 
举报打赏
 
更多>同类物流大全
推荐图文
推荐物流大全
点击排行

网站首页  |  关于我们  |  联系方式 | 网站留言    |  赣ICP备2021007278号