std::list::append_range
De cppreference.com
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
Ejecuta este código
#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
(C++23) |
Agrega un rango de elementos al principio. (función miembro pública) |
(C++23) |
Inserta un rango de elementos. (función miembro pública) |
Agrega elementos al final. (función miembro pública) | |
(C++11) |
Construye un elemento en el sitio al final. (función miembro pública) |