std::inplace_vector<T,N>::assign_range
De cppreference.com
< cpp | container | inplace vector
template< rango-compatible-con-contenedores<T> R > void assign_range( R&& rg ); |
(desde C++23) | |
Reemplaza elementos en el contenedor con una copia de cada elemento en rg.
La información sobre la invalidación del iterador se copia de aquí
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). 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
Ejecuta este código
#include <algorithm> #include <cassert> #include <inplace_vector> #include <list> int main() { const auto source = std::list{2, 7, 1}; auto destination = std::inplace_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) | |
Asigna valores al contenedor. (función miembro pública) |