Espacios de nombres
Variantes

std::forward_list::insert_range_after

De cppreference.com
 
 
 
 
template< rango-compatible-con-contenedores<T> R >
iterator insert_range_after( const_iterator pos, R&& rg );
(desde C++23)

Inserta, en orden no inverso, las copias de los elementos en rg antes de pos. Cada iterador en el rango rg se desreferencia exactamente una vez.

pos debe ser cualquier iterador desreferenciable en el rango [begin()end()) o el iterador before_begin() (por lo tanto, end() no es un argumento válido para pos).

Ningún iterador o referencia queda invalidado.

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

Parámetros

pos - Un iterador después del cual se insertará el contenido.
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 forward_list de *ranges::begin(rg). De lo contrario, el comportamiento no está definido.

Valor de retorno

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

Complejidad

Lineal en tamaño de rg.

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.

Ejemplo

#include <algorithm>
#include <cassert>
#include <forward_list>
#include <iterator>
#include <vector>

int main()
{
    auto container = std::forward_list{1, 2, 3, 4};
    auto pos = std::next(container.cbegin());
    assert(*pos == 2);
    const auto rg = std::vector{-1, -2, -3};

#ifdef __cpp_lib_containers_ranges
    container.insert_range_after(pos, rg);
#else
    container.insert_after(pos, rg.cbegin(), rg.cend());
#endif
    
    assert(std::ranges::equal(container, std::vector{1, 2, -1, -2, -3, 3, 4}));
}


Véase también

Agrega un rango de elementos al principio.
(función miembro pública)
Inserta elementos después de un elemento.
(función miembro pública)
Construye elementos en el sitio después de un elemento.
(función miembro pública)
Morty Proxy This is a proxified and sanitized view of the page, visit original site.