Namespaces
Variants

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

From cppreference.net

template < container-compatible-range < T > R >
void assign_range ( R && rg ) ;
(depuis C++23)
(constexpr depuis C++26)

Remplace les éléments du conteneur par une copie de chaque élément dans rg .

Tous les itérateurs (y compris l'itérateur end() ) et toutes les références aux éléments sont invalidés.

Chaque itérateur dans la plage rg est déréférencé exactement une fois.

Si rg chevauche * this , le comportement est indéfini.

Table des matières

Paramètres

rg - un input_range dont le type de référence est convertible en le type d'élément du conteneur
Exigences de type
-
Si std:: assignable_from < T & , ranges:: range_reference_t < R >> n'est pas satisfait, le programme est mal formé.
-
Si T n'est pas EmplaceConstructible dans forward_list à partir de * ranges:: begin ( rg ) , le comportement est indéfini.

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 <list>
int main()
{
    const auto source = std::list{2, 7, 1};
    auto destination = std::forward_list{3, 1, 4};
#ifdef __cpp_lib_containers_ranges
    destination.assign_range(source);
#else
    destination.assign(source.cbegin(), source.cend());
#endif
    assert(std::ranges::equal(source, destination));
}

Voir aussi

insère une plage d'éléments après un élément
(fonction membre publique)
ajoute une plage d'éléments au début
(fonction membre publique)
assigne des valeurs au conteneur
(fonction membre publique)
assigne des valeurs au conteneur
(fonction membre publique)