Namespaces
Variants

std::forward_list<T,Allocator>:: insert_range_after

From cppreference.net
template < container-compatible-range < T > R >
iterator insert_range_after ( const_iterator pos, R && rg ) ;
(depuis C++23)
(constexpr depuis C++26)

Insère des copies des éléments dans la plage rg après pos . Chaque itérateur dans la plage rg est déréférencé exactement une fois.

Si l'une des conditions suivantes est satisfaite, le comportement est indéfini :

Aucun itérateur ou référence n'est invalidé.

Table des matières

Paramètres

pos - un itérateur après lequel le contenu sera inséré
rg - une plage compatible avec le conteneur , c'est-à-dire une input_range dont les éléments sont convertibles en T

Valeur de retour

Un itérateur vers le dernier élément inséré, ou pos si rg est vide.

Complexité

Linéaire en taille de rg .

Notes

Macro de test de fonctionnalité Valeur Std Fonctionnalité
__cpp_lib_containers_ranges 202202L (C++23) Construction et insertion compatibles avec les gammes

Exemple

#include <algorithm>
#include <cassert>
#include <forward_list>
#include <iterator>
#include <vector>
int main()
{
    auto container = std::forward_list{1, 2, 3, 4};
    auto pos = std::next(container.cbegin());
    assert(*pos == 2);
    const auto rg = std::vector{-1, -2, -3};
#ifdef __cpp_lib_containers_ranges
    container.insert_range_after(pos, rg);
#else
    container.insert_after(pos, rg.cbegin(), rg.cend());
#endif
    assert(std::ranges::equal(container, std::vector{1, 2, -1, -2, -3, 3, 4}));
}

Voir aussi

ajoute une plage d'éléments au début
(fonction membre publique)
insère des éléments après un élément
(fonction membre publique)
construit des éléments en place après un élément
(fonction membre publique)