std::flat_multiset<Key,Compare,KeyContainer>:: insert_range
|
template
<
container-compatible-range
<
value_type
>
R
>
void insert_range ( R && rg ) ; |
(desde C++23)
(constexpr desde C++26) |
|
Inserta una copia de cada elemento en el rango
rg
en el contenedor subyacente
c
como si fuera mediante:
for (const auto& e : rg) c.insert(c.end(), e);
Luego, ordena el rango de elementos recién insertados con respecto a
compare
.
Combina el rango ordenado resultante y el rango ordenado de elementos preexistentes en un único rango ordenado.
Cada iterador en el rango rg es desreferenciado exactamente una vez.
Si se satisface cualquiera de las siguientes condiciones, el comportamiento es indefinido:
-
value_typeno es EmplaceConstructible enflat_multisetdesde * ranges:: begin ( rg ) - rg y * this se superponen.
| La información sobre invalidación de iteradores está copiada de aquí |
Contenidos |
Parámetros
| rg | - |
un
rango compatible con contenedor
, es decir, un
input_range
cuyos elementos son convertibles a
T
|
Complejidad
S+N·log(N) , donde S es size ( ) y N es ranges:: distance ( rg ) .
Notas
Dado que
insert_range
realiza una operación de fusión in situ, puede asignar memoria.
Ejemplo
#include <iostream> #include <flat_set> void println(auto, const auto& container) { for (const auto& elem : container) std::cout << elem << ' '; std::cout << '\n'; } int main() { auto container = std::flat_multiset{1, 3, 2, 4}; const auto rg = {-1, 3, -2}; #ifdef __cpp_lib_containers_ranges container.insert_range(rg); #else container.insert(rg.begin(), rg.end()); #endif println("{}", container); }
Salida:
-2 -1 1 2 3 3 4
Véase también
|
inserta elementos
(función miembro pública) |