Espacios de nombres
Variantes
Acciones

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

De cppreference.com
< cpp‎ | container‎ | vector
 
 
 
 
template< rango-compatible-con-contenedores<T> R >
constexprvoid 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 vector de *ranges::begin(rg). También, T debe ser MoveInsertable en vector. De lo contrario, el comportamiento no está definido.

[editar]Valor de retorno

(Ninguno)

[editar]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().

[editar]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.

[editar]Notas

Macro de Prueba de característicaValorEstándarComentario
__cpp_lib_containers_ranges202202L(C++23) Construcción e inserción consciente de rangos.

[editar]Ejemplo

#include <algorithm>#include <cassert>#include <vector>#include <list>   int main(){auto head =std::vector{1, 2, 3, 4};constauto tail =std::list{-5, -6, -7};#ifdef __cpp_lib_containers_ranges head.append_range(tail);#else head.insert(head.end(), tail.cbegin(), tail.cend());#endifassert(std::ranges::equal(head, std::vector{1, 2, 3, 4, -5, -6, -7}));}


[editar]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)
close