现在位置: 首页 > C++ 教程 > 正文

C++ <list> merge 函数

C++ 容器类 <list> C++ 容器类 <list>


merge 是 list 中用于合并两个已排序链表的函数,是链表特有的高效操作。

merge 是容器类的成员函数,用于将另一个已排序的链表合并到当前链表中。

合并后,两个链表的元素会按照顺序合并,当前链表变为有序。

单词释义merge 表示"合并",即合并两个有序链表。


基本语法与参数

语法格式

void merge(list& other);
void merge(list& other, Compare comp);

参数说明

  • 参数other - 要合并的链表(将被清空)

函数说明

  • 返回值void (无返回值)。
  • 效果: 合并两个有序链表,other 变为空。

实例

示例 1:合并两个有序链表

实例

#include <iostream>
#include <list>

int main() {
    std::list<int> list1 = {1, 3, 5, 7, 9};
    std::list<int> list2 = {2, 4, 6, 8, 10};

    std::cout << "list1: ";
    for(int n : list1) std::cout << n << " ";
    std::cout << std::endl;

    std::cout << "list2: ";
    for(int n : list2) std::cout << n << " ";
    std::cout << std::endl;

    // 合并
    list1.merge(list2);

    std::cout << "合并后 list1: ";
    for(int n : list1) std::cout << n << " ";
    std::cout << std::endl;

    std::cout << "合并后 list2 大小: " << list2.size() << std::endl;

    return 0;
}

运行结果预期:

list1: 1 3 5 7 9
list2: 2 4 6 8 10
合并后 list1: 1 2 3 4 5 6 7 8 9 10
合并后 list2 大小: 0

示例 2:合并后 list2 被清空

实例

#include <iostream>
#include <list>

int main() {
    std::list<int> a = {1, 5, 6};
    std::list<int> b = {2, 3, 4, 7};

    a.merge(b);

    std::cout << "合并后: ";
    for(int n : a) std::cout << n << " ";
    std::cout << std::endl;

    std::cout << "b 是否为空: " << (b.empty() ? "是" : "否") << std::endl;

    return 0;
}

运行结果预期:

合并后: 1 2 3 4 5 6 7
b 是否为空: 是

C++ 容器类 <list> C++ 容器类 <list>