Namespaces
Variants

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

Von de.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.

rg darf sich nicht mit dem Container überschneiden. Andernfalls ist das Verhalten undefiniert.

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)