std::set<Key,Compare,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 danssetà partir de * ranges:: begin ( rg ) - rg et * this se chevauchent.
Aucun itérateur ou référence n'est invalidé.
Table des matières |
Paramètres
| rg | - |
un
intervalle compatible avec un conteneur
, c'est-à-dire un
input_range
dont les éléments sont convertibles en
T
|
Complexité
N·log(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 <set> void println(auto, const auto& container) { for (const auto& elem : container) std::cout << elem << ' '; std::cout << '\n'; } int main() { auto container = std::set{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); }
Sortie :
-2 -1 1 2 3 4
Voir aussi
|
insère des éléments
ou des nœuds
(depuis C++17)
(fonction membre publique) |