std::list::append_range
De cppreference.com
<tbody>
</tbody>
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.
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.
| ||
Valor de retorno
(Ninguno)
Complejidad
Lineal en tamaño de rg. El número de llamadas al constructor de T es exactamente igual al std::ranges::size(rg)).
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).
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
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}));
}
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) |