C++ List Library - splice() Function



Description

The C++ function std::list::splice() transfers the element pointed to by iterator i from list x into *this. The element is inserted before the element pointed to by position.

Declaration

Following is the declaration for std::list::splice() function form std::list header.

C++98

void splice (iterator position, list& x, iterator i);

C++11

void splice (const_iterator position, list& x, const_iterator i);

Parameters

  • position − Position in the list where new element to be inserted.

  • x − Another list object of same type.

  • i − Random access iterator.

Return value

None.

Exceptions

If iterator points to invalid position then behavior is undefined.

Time complexity

Constant i.e. O(1)

Example

The following example shows the usage of std::list::splice() function.

#include <iostream>
#include <list>

using namespace std;

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

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

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

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

   return 0;
}

Let us compile and run the above program, this will produce the following result −

Contents of list l1 after splice operation
1
2
3
4
list.htm
Advertisements