Espacios de nombres
Variantes

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

De cppreference.com

[edit template]
 
 
 
 
<tbody> </tbody>
template< rango-compatible-con-contenedores<T> R > constexpr 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.

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 vector de *ranges::begin(rg). También, T debe ser MoveInsertable en vector. De lo contrario, el comportamiento no está definido.

Valor de retorno

(Ninguno)

Complejidad

Si ocurre una reasignación, lineal en el número de elementos del vector resultante; en caso contrario, lineal en el número de elementos insertados más la distancia al end().

Excepciones

Si se lanza una excepción que no sea por el constructor de copia, el constructor de movimiento, el operador de asignación o el operador de asignación de movimiento de T, o por cualquier operación de un InputIterator no hay efectos. Si se lanza una excepción al insertar un solo elemento al final y T es CopyInsertable o std::is_nothrow_move_constructible_v<T> es true, no hay efectos. De lo contrario, si la excepción se lanza por el constructor de movimiento de un tipo T que no es CopyInsertable, los efectos no se especifican.

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 <vector>
#include <list>

int main()
{
    auto head = std::vector{1, 2, 3, 4};
    const auto tail = std::list{-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::vector{1, 2, 3, 4, -5, -6, -7}));
}


Véase también

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)