C++ 使用迭代器改变 List 顺序:反转和自定义排序

在 C++ 中,可以使用迭代器来访问和操作 List 中的元素。这篇文章将介绍如何使用迭代器来改变 List 的顺序,包括反转和自定义排序。

1. 使用 reverse() 反转 List

可以使用 List 的成员函数 reverse() 来反转 List 中元素的顺序。例如:

#include <iostream>
#include <list>

int main() {
    std::list<int> mylist = {1, 2, 3, 4, 5};
    std::cout << "Original list: ";
    for (auto i : mylist) {
        std::cout << i << " ";
    }
    std::cout << std::endl;

    mylist.reverse();

    std::cout << "Reversed list: ";
    for (auto i : mylist) {
        std::cout << i << " ";
    }
    std::cout << std::endl;

    return 0;
}

输出:

Original list: 1 2 3 4 5 
Reversed list: 5 4 3 2 1 

2. 使用 std::sort() 和自定义比较函数实现自定义排序

如果需要按照自定义的顺序排序,可以使用 std::sort() 函数和自定义的比较函数。例如:

#include <iostream>
#include <list>
#include <algorithm>

bool compare(int a, int b) {
    return a > b;
}

int main() {
    std::list<int> mylist = {2, 4, 1, 5, 3};
    std::cout << "Original list: ";
    for (auto i : mylist) {
        std::cout << i << " ";
    }
    std::cout << std::endl;

    mylist.sort(compare);

    std::cout << "Sorted list: ";
    for (auto i : mylist) {
        std::cout << i << " ";
    }
    std::cout << std::endl;

    return 0;
}

输出:

Original list: 2 4 1 5 3 
Sorted list: 5 4 3 2 1 

上面的比较函数 compare() 定义了一个降序排序规则。std::sort() 会根据这个比较函数对 List 中的元素进行排序。

总结

通过使用迭代器,我们可以方便地访问和操作 List 中的元素,实现反转和自定义排序等操作。reverse() 函数可以快速反转 List 的顺序,而 std::sort() 函数结合自定义比较函数则可以实现更加灵活的排序需求。

C++ 使用迭代器改变 List 顺序:反转和自定义排序

原文地址: https://www.cveoy.top/t/topic/lAzl 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录