C++ 列表库 - splice() 函数



描述

C++ 函数 std::list::splice() 将范围内的元素firstlastx转移到 *this,使用移动语义。这些元素将插入到由position.

指向的元素之前。

声明

以下是来自 std::list 头文件的 std::list::splice() 函数的声明。

void splice (const_iterator position, list&& x, const_iterator first, const_iterator last);

C++11

  • 参数

  • position - 列表中要插入新元素的位置。

  • x - 另一个相同类型的列表对象。

  • first - 范围初始位置的输入迭代器

last - 范围结束位置的输入迭代器

返回值

异常

如果提供的范围无效,则行为未定义。

时间复杂度

线性,即 O(n)

示例

#include <iostream>
#include <list>

using namespace std;

int main(void) {
   list<int> l1 = {1, 2};
   list<int> l2 = {3, 4, 5};

   l1.splice(l1.end(), move(l2), l2.begin(), l2.end());

   cout << "Contents of list l1 after splice operation" << endl;

   for (auto it = l1.begin(); it != l1.end(); ++it)
      cout << *it << endl;

   return 0;
}

在线演示

Contents of list l1 after splice operation
1
2
3
4
5
让我们编译并运行以上程序,这将产生以下结果:
打印页面