std::list::insert_range
De cppreference.com
template< rango-compatible-con-contenedores<T> R > iterator insert_range( const_iterator pos, R&& rg ); |
(desde C++23) | |
Inserta, en orden no inverso, copias de los elementos en rg antes que pos.
Cada iterador en el rango rg se desreferencia exactamente una vez.
El comportamiento no está definido si rg se superpone con el contenedor.
Parámetros
| pos | - | Iterador antes del cual se insertará el contenido (pos puede ser el iterador end()).
|
| 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
Un iterador que apunta a la copia del primer elemento insertado en list o en pos si rg está vacío.
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 <iterator>
#include <list>
#include <vector>
int main()
{
auto container = std::list{1, 2, 3, 4};
auto pos = std::next(container.begin(), 2);
assert(*