Namespaces
Variants

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

From cppreference.net

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

Reemplaza los elementos en el contenedor con una copia de cada elemento en rg .

Todos los iteradores (incluyendo el end() iterator) y todas las referencias a los elementos quedan invalidados.

Cada iterador en el rango rg es desreferenciado exactamente una vez.

Si rg se superpone con * this , el comportamiento es indefinido.

Contenidos

Parámetros

rg - un input_range cuyo tipo de referencia es convertible al tipo de elemento del contenedor
Requisitos de tipo
-
Si std:: assignable_from < T & , ranges:: range_reference_t < R >> no se cumple, el programa está mal formado.
-
Si T no es EmplaceConstructible en forward_list desde * ranges:: begin ( rg ) , el comportamiento es indefinido.

Notas

Macro de prueba de características Valor Std Característica
__cpp_lib_containers_ranges 202202L (C++23) Construcción e inserción con reconocimiento de rangos

Ejemplo

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

Véase también

inserta un rango de elementos después de un elemento
(función miembro pública)
agrega un rango de elementos al principio
(función miembro pública)
asigna valores al contenedor
(función miembro pública)
asigna valores al contenedor
(función miembro pública)