📜  C++ STL中的forward_list merge()(1)

📅  最后修改于: 2023-12-03 14:59:46.521000             🧑  作者: Mango

C++ STL 中的 forward_list merge()

在 C++ STL 中,forward_list 是一个单向链表容器,其中的 merge() 函数用于将两个已排序的 forward_list 合并成一个新的已排序的 forward_list

语法

以下是 forward_list merge() 函数的语法:

void merge(forward_list& list);

其中,list 是要和当前链表合并的已排序的 forward_list

实例

以下是一个使用 merge() 函数的示例:

#include <iostream>
#include <forward_list>

using namespace std;

int main() {
    forward_list<int> list1 = {1, 3, 5};
    forward_list<int> list2 = {2, 4, 6};
    
    list1.sort();
    list2.sort();
    
    list1.merge(list2);
    
    for (int& x : list1) {
        cout << x << " ";
    }
    cout << endl;
    
    return 0;
}

输出结果为:

1 2 3 4 5 6
解析

首先,我们创建了两个 forward_list 分别存储数字 1、3、5 和 2、4、6。接着,我们对这两个链表进行排序,然后使用 list1.merge(list2) 将它们合并成为一个新的链表。

最后,我们使用循环遍历链表中的元素,并输出它们。

注意事项

请注意,merge() 函数要求两个链表都已排序。可以通过使用 sort() 函数对链表进行排序来确保它们是有序的。此外,merge() 函数将删除第二个链表,因此请确保你不需要第二个链表中的数据。

结论

通过使用 forward_list 中的 merge() 函数,我们可以轻松地将两个已排序的链表合并成一个新的已排序的链表。