std::multiset<Key,Compare,Allocator>::insert_range
Von cppreference.com
| template< container-compatible-range<value_type> R > void insert_range( R&& rg ); |
(seit C++23) | |
Fügt eine Kopie jedes Elements im Bereich rg ein.
Jeder Iterator im Bereich rg wird genau einmal dereferenziert. Das Verhalten ist undefiniert, wenn rg mit dem Container überlappt.
Keine Iteratoren oder Referenzen werden ungültig.
Inhalt |
[bearbeiten] Parameter
| rg | - | Ein Container-kompatibler Bereich, d. h. ein input_range, dessen Elemente in T konvertierbar sind |
| Typanforderungen | ||
-value_type muss EmplaceConstructible in multiset aus *ranges::begin(rg) sein. Andernfalls ist das Verhalten undefiniert. | ||
[bearbeiten] Rückgabewert
(keine)
[bearbeiten] Komplexität
N·log(a.size() + N), wobei N ranges::distance(rg) ist.
[bearbeiten] Hinweise
| Feature-Test-Makro | Wert | Std | Feature |
|---|---|---|---|
__cpp_lib_containers_ranges |
202202L |
(C++23) | Ranges-kompatible Konstruktion und Einfügung |
[bearbeiten] Beispiel
Führen Sie diesen Code aus
#include <iostream> #include <set> void println(auto, auto const& container) { for (const auto& elem : container) std::cout << elem << ' '; std::cout << '\n'; } int main() { auto container = std::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); }
Ausgabe
-2 -1 1 2 3 3 4
[bearbeiten] Siehe auch
| fügt Elemente ein oder Knoten(seit C++17) (public member function) |