std::flat_multimap<Key,T,Compare,KeyContainer,MappedContainer>:: insert_range
|
template
<
container-compatible-range
<
value_type
>
R
>
void insert_range ( R && rg ) ; |
(depuis C++23)
(constexpr depuis C++26) |
|
Insère une copie de chaque élément dans la plage
rg
dans les conteneurs sous-jacents
c
comme si par :
for (const auto& e : rg) { c.keys.insert(c.keys.end(), e.first); c.values.insert(c.values.end(), e.second); }
` et contient des termes spécifiques au C++. Seule la structure HTML environnante a été préservée sans modification.
Trie ensuite la plage des éléments nouvellement insérés par rapport à value_comp() . Fusionne la plage triée résultante et la plage triée des éléments préexistants en une seule plage triée.
Chaque itérateur dans la plage rg est déréférencé exactement une fois.
Si l'une des conditions suivantes est satisfaite, le comportement est indéfini :
-
value_typen'est pas EmplaceConstructible dansflat_multimapà partir de * ranges:: begin ( rg ) - rg et * this se chevauchent.
| Les informations sur l'invalidation des itérateurs sont copiées depuis ici |
Table des matières |
Paramètres
| rg | - |
une
plage compatible avec un conteneur
, c'est-à-dire une
input_range
dont les éléments sont convertibles en
T
|
Complexité
S+N·log(N) , où S est size ( ) et N est ranges:: distance ( rg ) .
Notes
Puisque
insert_range
effectue une opération de fusion en place, cela peut allouer de la mémoire.
Exemple
#include <iostream> #include <flat_map> #include <utility> void println(auto, const auto& container) { for (const auto& [key, value] : container) std::cout << '{' << key << ',' << value << '}' << ' '; std::cout << '\n'; } int main() { auto container = std::flat_multimap{std::pair{1, 11}, {3, 33}, {2, 22}, {4, 44}}; const auto rg = {std::pair{-1, -11}, {3, -33}, {-2, -22}}; #ifdef __cpp_lib_containers_ranges container.insert_range(rg); #else container.insert(rg.begin(), rg.end()); #endif println("{}", container); }
Sortie :
{-2,-22} {-1,-11} {1,11} {2,22} {3,33} {3,-33} {4,44}
Voir aussi
|
insère des éléments
(fonction membre publique) |