Namensräume
Varianten
Aktionen

std::multiset<Key,Compare,Allocator>::insert_range

Von cppreference.com
< cpp‎ | container‎ | multiset
 
 
 
 
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

#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) [edit]