Namespaces
Variants

std::inplace_vector<T,N>:: insert_range

From cppreference.net

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

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

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.

Ausnahmen

  • std::bad_alloc , falls ranges:: distance ( rg ) + size ( ) > capacity ( ) . Die Elemente von * this werden nicht modifiziert.
  • Jede Ausnahme, die durch Einfügung (d.h. durch Kopier-/Move-Konstruktor, Move-/Kopier-Zuweisungsoperator von T ) oder durch eine LegacyInputIterator Operation ausgelöst wird. Die Elemente von * this im Bereich [ 0 , pos ) werden nicht modifiziert.

Beispiel

#include <cassert>
#include <inplace_vector>
#include <iterator>
#include <new>
#include <print>
int main()
{
    auto v = std::inplace_vector<int, 8>{0, 1, 2, 3};
    auto pos = std::next(v.begin(), 2);
    assert(*pos == 2);
    const auto rg = {-1, -2, -3};
    v.insert_range(pos, rg);
    std::println("{}", v);
    try
    {
        assert(v.size() + rg.size() > v.capacity());
        v.insert_range(pos, rg); // throws: no space
    }
    catch(const std::bad_alloc& ex)
    {
        std::println("{}", ex.what());
    }
}

Mögliche Ausgabe:

[0, 1, -1, -2, -3, 2, 3]
std::bad_alloc

Siehe auch

fügt Elemente ein
(öffentliche Elementfunktion)
fügt einen Bereich von Elementen am Ende hinzu
(öffentliche Elementfunktion)
versucht, einen Bereich von Elementen am Ende hinzuzufügen
(öffentliche Elementfunktion)