C++ STL中的forward_list::splice_after()

C++ STL中的forward_list::splice_after()

forward_list::splice_after() 是CPP STL中的内置函数,它将给定forward_list中第一个元素之后到最后一个元素的范围内的元素转移到另一个forward_list中。这些元素在参数中的位置指向的元素之后插入。

语法:

forwardlist1_name.splice_after(position iterator, forwardlist2_name,
                                    first iterator, last iterator)

参数:

该函数接受四个参数,如下所示:

  • position - 指定要插入新元素的位置在forward_list之后。
  • forwardlist2_name - 指定要插入元素的列表。
  • first - 指定在哪个元素之后插入新元素。
  • last - 指定要插入到哪个元素为止。

返回值: 该函数没有返回值。下面的程序演示了上述函数:

程序1:

// C++程序演示
// splice_after()函数
#include <bits/stdc++.h>
using namespace std;

int main()
{
    // 初始化前向列表
    forward_list<int> list1 = {10,20,30,40};
    forward_list<int> list2 = {4,9};

    //执行splice_after操作
    //将list1中除第一个元素外的所有元素
    //插入到4和9之间的list2中
    list2.splice_after(list2.begin(), list1,
                        list1.begin(), list1.end());

    cout << "Elements are: " << endl;

    //循环打印第二个列表的元素
    for (auto it = list2.begin(); it != list2.end(); ++it)
        cout << *it << " ";

    return 0;
}  

输出:

Elements are: 
4 20 30 40 9

时间复杂度: O(n)

辅助空间: O(n)

程序2:

// C++程序演示
// splice_after()函数
#include <bits/stdc++.h>
using namespace std;

int main()
{
    // 初始化前向列表
    forward_list<int> list1 = {10,20,30,40};
    forward_list<int> list2 = {4,9};

    //执行splice_after操作
    //将list1的所有元素插入到4和9之间的list2中
    list2.splice_after(list2.begin(), list1,
        list1.before_begin(), list1.end());

    cout << "Elements are: " << endl;

    //循环打印第二个列表的元素
    for (auto it = list2.begin(); it != list2.end(); ++it)
        cout << *it << " ";

    return 0;
}  

输出:

Elements are: 
4 10 20 30 40 9

时间复杂度: O(n)

辅助空间: O(n)

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

C++ 教程