Namespaces
Variants

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

From cppreference.net

template < container-compatible-range < T > R >
iterator insert_range ( const_iterator pos, R && rg ) ;
(seit C++23)
(constexpr seit C++26)

Fügt, in nicht umgekehrter Reihenfolge, Kopien der Elemente in rg vor pos ein.

Alle Iteratoren (einschließlich des end() Iterators) werden ungültig. Referenzen werden ebenfalls ungültig, es sei denn pos == begin() oder pos == end() , in welchem Fall sie nicht ungültig werden.

Jeder Iterator im Bereich rg wird genau einmal dereferenziert.

Wenn rg sich mit * this überschneidet, ist das Verhalten undefiniert.

Inhaltsverzeichnis

Parameter

pos - Iterator vor dem der Inhalt eingefügt wird ( pos kann der end() Iterator sein)
rg - ein container-kompatibler Bereich , also ein input_range , dessen Elemente in T konvertierbar sind
Typanforderungen
-
Wenn eine der folgenden Bedingungen erfüllt ist, ist das Verhalten undefiniert:

Rückgabewert

Ein Iterator auf das erste in * this eingefügte Element, oder pos falls rg leer ist.


Hinweise

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

Beispiel

#include <algorithm>
#include <cassert>
#include <iterator>
#include <deque>
#include <list>
int main()
{
    auto container = std::deque{1, 2, 3, 4};
    auto pos = std::next(container.begin(), 2);
    assert(*pos == 3);
    const auto rg = std::list{-1, -2, -3};
#ifdef __cpp_lib_containers_ranges
    container.insert_range(pos, rg);
#else
    container.insert(pos, rg.cbegin(), rg.cend());
#endif
    assert(std::ranges::equal(container, std::deque{1, 2, -1, -2, -3, 3, 4}));
}

Siehe auch

fügt Elemente ein
(öffentliche Elementfunktion)
fügt eine Reihe von Elementen am Anfang hinzu
(öffentliche Elementfunktion)
fügt eine Reihe von Elementen am Ende hinzu
(öffentliche Elementfunktion)