Bibliothèque de listes C ++ - fonction splice ()

La description

La fonction C ++ std::list::splice()transfère l'élément pointé par l'itérateur i de la liste x dans * this en utilisant la sémantique de déplacement. L'élément est inséré avant l'élément pointé par position .

Déclaration

Voici la déclaration de l'en-tête std :: list de la fonction std :: list :: splice ().

C ++ 11

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

Paramètres

  • position - Position dans la liste où le nouvel élément à insérer.

  • x - Un autre objet de liste du même type.

  • i - Itérateur à accès aléatoire.

Valeur de retour

Aucun.

Des exceptions

Si l'itérateur pointe vers un emplacement non valide, le comportement n'est pas défini.

Complexité temporelle

Constante ie O (1)

Exemple

L'exemple suivant montre l'utilisation de la fonction std :: list :: splice ().

#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(), move(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;
}

Compilons et exécutons le programme ci-dessus, cela produira le résultat suivant -

Contents of list l1 after splice operation
1
2
3
4