Partager via


forward_list::splice_after

Supprime des éléments d'une liste forward_list source et les insère dans une liste forward_list de destination.

// insert the entire source forward_list void splice_after( const_iterator Where, forward_list& Source ); void splice_after( const_iterator Where, forward_list&& Source );  // insert one element of the source forward_list void splice_after( const_iterator Where, forward_list& Source, const_iterator Iter ); void splice_after( const_iterator Where, forward_list&& Source, const_iterator Iter );  // insert a range of elements from the source forward_list void splice_after( const_iterator Where, forward_list& Source, const_iterator First, const_iterator Last ); void splice_after( const_iterator Where, forward_list&& Source, const_iterator First, const_iterator Last );

Paramètres

  • Where
    Position dans la liste forward_list de destination après laquelle l'insertion doit être effectuée.

  • Source
    Liste forward_list source qui doit être insérée dans la liste forward_list de destination.

  • Iter
    Élément à insérer à partir de la liste forward_list source.

  • First
    Premier élément de la plage à insérer à partir de la liste forward_list source.

  • Last
    Première position au-delà de la plage à insérer à partir de la liste forward_list source.

Notes

La première paire de fonctions membres insère la séquence contrôlée par Source juste après l'élément dans la séquence contrôlée vers lequel Where pointe. Elle supprime également tous les éléments de Source. (&Source ne doit pas être égal à this.)

La deuxième paire de fonctions membres supprime l'élément juste après Iter dans la séquence contrôlée par Source et l'insère juste après l'élément dans la séquence contrôlée vers lequel Where pointe. (Si Where == Iter || Where == ++Iter, aucune modification ne se produit.)

La troisième paire de fonctions membres (méthode splice à plage) insère la sous-plage désignée par (First, Last) à partir de la séquence contrôlée par Source juste après l'élément dans la séquence contrôlée vers lequel Where pointe. Elle supprime également la sous-plage d'origine de la séquence contrôlée par Source. (Si &Source == this, la plage (First, Last) ne doit pas inclure l'élément vers lequel Where pointe.)

Si la méthode splice à plage insère N éléments et que &Source != this, un objet de classe iterator est incrémenté N fois.

Aucun itérateur, pointeur ou référence qui désigne des éléments ajoutés n'est invalidé.

Exemple

// forward_list_splice_after.cpp
// compile with: /EHsc /W4
#include <forward_list>
#include <iostream>

using namespace std;

template <typename S> void print(const S& s) {
    for (const auto& p : s) {
        cout << "(" << p << ") ";
    }

    cout << endl;
}

int main()
{
    forward_list<int> c1{ 10, 11 };
    forward_list<int> c2{ 20, 21, 22 };
    forward_list<int> c3{ 30, 31 };
    forward_list<int> c4{ 40, 41, 42, 43 };

    forward_list<int>::iterator where_iter;
    forward_list<int>::iterator first_iter;
    forward_list<int>::iterator last_iter;

    cout << "Beginning state of lists:" << endl;
    cout << "c1 = ";
    print(c1);
    cout << "c2 = ";
    print(c2);
    cout << "c3 = ";
    print(c3);
    cout << "c4 = ";
    print(c4);

    where_iter = c2.begin();
    ++where_iter; // start at second element
    c2.splice_after(where_iter, c1);
    cout << "After splicing c1 into c2:" << endl;
    cout << "c1 = ";
    print(c1);
    cout << "c2 = ";
    print(c2);

    first_iter = c3.begin();
    c2.splice_after(where_iter, c3, first_iter);
    cout << "After splicing the first element of c3 into c2:" << endl;
    cout << "c3 = ";
    print(c3);
    cout << "c2 = ";
    print(c2);

    first_iter = c4.begin();
    last_iter = c4.end();
    // set up to get the middle elements
    ++first_iter;
    c2.splice_after(where_iter, c4, first_iter, last_iter);
    cout << "After splicing a range of c4 into c2:" << endl;
    cout << "c4 = ";
    print(c4);
    cout << "c2 = ";
    print(c2);
}
  

Configuration requise

En-tête : <forward_list>

Espace de noms : std

Voir aussi

Référence

forward_list, classe