Namespaces
Variants

std::deque<T,Allocator>:: append_range

From cppreference.net

template < container-compatible-range < T > R >
void append_range ( R && rg ) ;
(seit C++23)
(constexpr seit C++26)

Fügt Kopien von Elementen aus dem Bereich rg vor end() ein, in nicht umgekehrter Reihenfolge.

Alle Iteratoren (einschließlich des end() Iterators) werden ungültig. Keine Referenzen werden ungültig.

Jeder Iterator in rg wird genau einmal dereferenziert.

Inhaltsverzeichnis

Parameter

rg - ein container compatible range , also ein input_range , dessen Elemente konvertierbar zu T sind
Typanforderungen
-
Falls T nicht EmplaceConstructible in deque aus * ranges:: begin ( rg ) ist, ist das Verhalten undefiniert.

Komplexität

Linear in der Größe von rg . Die Anzahl der Aufrufe des Konstruktors von T ist genau gleich std :: ranges:: size ( rg ) ) .

Ausnahmen

Wenn eine Ausnahme ausgelöst wird, die nicht vom Kopierkonstruktor, Verschiebekonstruktor, Zuweisungsoperator oder Verschiebezuweisungsoperator von T stammt, gibt es keine Auswirkungen. Wenn eine Ausnahme beim Einfügen eines einzelnen Elements an einem der Enden ausgelöst wird, gibt es keine Auswirkungen. Andernfalls, wenn eine Ausnahme vom Verschiebekonstruktor eines nicht- CopyInsertable T ausgelöst wird, sind die Auswirkungen nicht spezifiziert.

Hinweise

Feature-Test Makro Wert Std Feature
__cpp_lib_containers_ranges 202202L (C++23) Ranges-basierte Konstruktion und Einfügung

Beispiel

#include <cassert>
#include <deque>
#include <list>
int main()
{
    auto head = std::deque{1, 2, 3, 4};
    const auto tail = std::list{-5, -6, -7};
#ifdef __cpp_lib_containers_ranges
    head.append_range(tail);
#else
    head.insert(head.end(), tail.cbegin(), tail.cend());
#endif
    assert((head == std::deque{1, 2, 3, 4, -5, -6, -7}));
}

Siehe auch

fügt einen Bereich von Elementen am Anfang hinzu
(öffentliche Elementfunktion)
fügt einen Bereich von Elementen ein
(öffentliche Elementfunktion)
fügt ein Element am Ende hinzu
(öffentliche Elementfunktion)
konstruiert ein Element direkt am Ende
(öffentliche Elementfunktion)