std::unordered_map<Key,T,Hash,KeyEqual,Allocator>:: 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 si et seulement s'il n'existe aucun élément avec une clé équivalente à la clé de cet élément dans * this .
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 dansunordered_mapà partir de * ranges:: begin ( rg ) - rg et * this se chevauchent.
Si après l'opération le nouveau nombre d'éléments est supérieur à l'ancien
max_load_factor()
*
bucket_count()
un rehashing a lieu.
Si un rehashing se produit (en raison de l'insertion), tous les itérateurs sont invalidés. Sinon (aucun rehashing), les itérateurs ne sont pas invalidés.
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é
Cas moyen N , cas le plus défavorable O(N·S+N) , où S est size ( ) et N est ranges:: distance ( rg ) .
Notes
| Macro de test de fonctionnalité | Valeur | Std | Fonctionnalité |
|---|---|---|---|
__cpp_lib_containers_ranges
|
202202L
|
(C++23) | Construction et insertion compatibles avec les gammes |
Exemple
#include <iostream> #include <unordered_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::unordered_map{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 possible :
{4,44} {-1,-11} {2,22} {3,33} {-2,-22} {1,11}
Voir aussi
|
insère des éléments
ou des nœuds
(depuis C++17)
(fonction membre publique) |