Espacios de nombres
Variantes
Acciones

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

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

Inserta, en orden no inverso, copias de los elementos en rg antes que pos.


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

pos - Iterador antes del cual se insertará el contenido (pos puede ser el iterador end()).
rg - Un rango compatible con contenedores, es decir, un input_range cuyos elementos son convertibles a T.
Requisitos de tipo
-
T debe ser EmplaceConstructible en vector de *ranges::begin(rg). También, T debe ser MoveInsertable en vector y T satisface MoveConstructible, MoveAssignable, y Swappable. De lo contrario, el comportamiento no está definido.

[editar] Valor de retorno

Un iterador que apunta a la copia del primer elemento insertado en vector o en pos si rg está vacío.

[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 <iterator>
#include <vector>
#include <list>
 
int main()
{
    auto container = std::vector{1, 2, 3, 4};
    auto pos = std::next(container.begin(), 2);
    assert(*pos == 3);
    const auto rg = std::list{-1, -2, -3};
 
#ifdef __cpp_lib_containers_ranges
    container.insert_range(pos, rg);
#else
    container.insert(pos, rg.cbegin(), rg.cend());
#endif
    assert(std::ranges::equal(container, std::vector{1, 2, -1, -2, -3, 3, 4}));
}


[editar] Véase también

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