Syntax:
#include <list> void splice( iterator pos, list& lst ); void splice( iterator pos, list& lst, iterator del ); void splice( iterator pos, list& lst, iterator start, iterator end );
The splice function moves one or more items from lst
right before location pos
. The first overloading moves all items to lst
, the second moves just the item at del
, and the third moves all items in the range inclusive of start
and exclusive of end
.
splice simply moves elements from one list to another, and doesn't actually
do any copying or deleting. Because of this, splice runs in constant time except for the third overloading which needs no more than linear time in the case that lst
is not the same as this
. However, if size is linear complexity then splice is constant time for all three.