Espacios de nombres
Variantes
Acciones

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

De cppreference.com
< cpp‎ | container‎ | vector
 
 
 
 
template< rango-compatible-con-contenedores<T> R >
constexpr void assign_range( R&& rg );
(desde C++23)

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


Cada iterador en el rango rg se desreferencia exactamente una vez.

El comportamiento no está definido si rg se superpone con el contenedor.

Contenido

[editar] Parámetros

rg - Un input_range con tipo referencia convertible al tipo de elemento del contenedor.
Requisitos de tipo
-
Debe modelarse std::assignable_from<T&, ranges::range_reference_t<R>> De lo contrario, el programa está mal formado.
-
T debe ser EmplaceConstructible en el contenedor de *ranges::begin(rg). Si R no modela ni sized_range ni forward_range, T también debe ser MoveInsertable en el contenedor. De lo contrario, el comportamiento no está definido.

[editar] Valor de retorno

(Ninguno)

[editar] Notas

Macro de Prueba de característica Valor Estándar Comentario
__cpp_lib_containers_ranges 202202L (C++23) Construcción e inserción consciente de rangos.

[editar] Ejemplo

#include <algorithm>
#include <cassert>
#include <vector>
#include <list>
 
int main()
{
    const auto source = std::list{2, 7, 1};
    auto destination = std::vector{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));
}


[editar] Véase también

Inserta un rango de elementos.
(función miembro pública)
Agrega un rango de elementos al final.
(función miembro pública)
Asigna valores al contenedor.
(función miembro pública)