#include <iostream>
#include <list>
int main()
{
// initializing lists
std::list<int> l1 = { 1, 2, 3};
std::list<int> l2 = { 4, 5, 6, 7, 8 };
std::list<int>::iterator it;
it = l2.begin();
advance(it, 2); // advance iterator by 2 positions
// transfer of elements from 3rd element to last in l2 at the end of l1
l1.splice(l1.end(), l2, it, l2.end());
std::cout << "list l1 after splice operation:" << std::endl;
for (auto i : l1) {
std::cout << i << " ";
}
std::cout << std::endl;
std::cout << "list l2 after splice operation:" << std::endl;
for (auto i : l2) {
std::cout << i << " ";
}
}
/*
run:
list l1 after splice operation:
1 2 3 6 7 8
list l2 after splice operation:
4 5
*/