Namespaces
Variants

std::deque<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 modélisé, le programme est mal formé.
-
Si T n'est pas EmplaceConstructible dans deque à 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 <deque>
#include <list>
int main()
{
    const auto source = std::list{2, 7, 1};
    auto destination = std::deque{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
(fonction membre publique)
ajoute une plage d'éléments au début
(fonction membre publique)
ajoute une plage d'éléments à la fin
(fonction membre publique)
assigne des valeurs au conteneur
(fonction membre publique)
assigne des valeurs au conteneur
(fonction membre publique)