Namespaces
Variants

std::forward_list<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.

No se invalidan iteradores ni referencias.

Contenidos

Parámetros

rg - un rango compatible con contenedor , es decir, un input_range cuyos elementos son convertibles a T
Requisitos de tipo
-
Si T no es EmplaceConstructible en forward_list desde * ranges:: begin ( rg ) , el comportamiento es indefinido.

Complejidad

Lineal en tamaño de rg .

Notas

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

Ejemplo

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

Véase también

inserta un rango de elementos
(función miembro pública)
inserta un rango de elementos después de un elemento
(función miembro pública)
inserta un elemento al principio
(función miembro pública)
construye un elemento in-situ al principio
(función miembro pública)