std::list<T,Allocator>:: append_range
|
template
<
container-compatible-range
<
T
>
R
>
void append_range ( R && rg ) ; |
(desde C++23)
(constexpr desde C++26) |
|
Inserta copias de elementos del rango
rg
antes de
end()
, en orden no inverso.
No se invalidan iteradores ni referencias.
Cada iterador en rg es desreferenciado exactamente una vez.
Contenidos |
Parámetros
| rg | - |
un
rango compatible con contenedor
, es decir, un
input_range
cuyos elementos son convertibles a
T
|
| Requisitos de tipo | ||
-
T
no es
EmplaceConstructible
en
list
desde
*
ranges::
begin
(
rg
)
, el comportamiento es indefinido.
|
||
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 razón, esta función no tiene efecto ( strong exception safety guarantee ).
Notas
| Macro de prueba de características | Valor | Std | Característica |
|---|---|---|---|
__cpp_lib_containers_ranges
|
202202L
|
(C++23) | Construcción e inserción con reconocimiento de rangos |
Ejemplo
#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((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 un elemento al final
(función miembro pública) |
|
|
(C++11)
|
construye un elemento en el lugar al final
(función miembro pública) |