Namespaces
Variants

std::deque<T,Allocator>:: prepend_range

From cppreference.net

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

Inserta, en orden no inverso, copias de los elementos en rg antes de begin() . Cada iterador en el rango rg es desreferenciado exactamente una vez.

Todos los iteradores (incluyendo el end() iterator) quedan invalidados. Ninguna referencia queda invalidada.

Contenidos

Parámetros

rg - un rango compatible con contenedor , es decir, un input_range cuyos elementos son convertibles a T
Requisitos de tipo
-
Si se satisface cualquiera de las siguientes condiciones, el comportamiento es indefinido:

Complejidad

Lineal en tamaño de rg .

Notas

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

Ejemplo

#include <algorithm>
#include <cassert>
#include <deque>
#include <vector>
int main()
{
    auto container = std::deque{0, 1, 2, 3};
    const auto rg = std::vector{-3, -2, -1};
#if __cpp_lib_containers_ranges
    container.prepend_range(rg);
#else
    container.insert(container.begin(), rg.cbegin(), rg.cend());
#endif
    assert(std::ranges::equal(container, std::deque{-3, -2, -1, 0, 1, 2, 3}));
}

Véase también

añade un rango de elementos al final
(función miembro pública)
inserta un rango de elementos
(función miembro pública)
inserta un elemento al principio
(función miembro pública)
construye un elemento en el lugar al principio
(función miembro pública)