Espacios de nombres
Variantes
Acciones

std::list::append_range

De cppreference.com
< cpp‎ | container‎ | list
 
 
 
 
template< rango-compatible-con-contenedores<T> R >
void append_range( R&& rg );
(desde C++23)

Inserta copias de elementos del rango rg antes de end(), en orden no inverso.


Cada iterador en rg se desreferencia exactamente una vez.

Contenido

[editar] Parámetros

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 list de *ranges::begin(rg). De lo contrario, el comportamiento no está definido.

[editar] Valor de retorno

(Ninguno)

[editar] Complejidad

Lineal en tamaño de rg. El número de llamadas al constructor de T es exactamente igual al std::ranges::size(rg)).

[editar] Excepciones

Si se lanza una excepción por cualquier motivo, esta función no tiene ningún efecto (garantía de seguridad de excepciones fuerte).

[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 <list>
#include <vector>
 
int main()
{
    auto head = std::list{1, 2, 3, 4};
    const auto tail = std::vector{-5, -6, -7};
#ifdef __cpp_lib_containers_ranges
    head.append_range(tail);
#else
    head.insert(head.end(), tail.cbegin(), tail.cend());
#endif
    assert(std::ranges::equal(head, std::list{1, 2, 3, 4, -5, -6, -7}));
}


[editar] Véase también

Agrega un rango de elementos al principio.
(función miembro pública)
Inserta un rango de elementos.
(función miembro pública)
Agrega elementos al final.
(función miembro pública)
Construye un elemento en el sitio al final.
(función miembro pública)