Namespaces
Variants

std::basic_string<CharT,Traits,Allocator>:: insert_range

From cppreference.net
std::basic_string
template < container-compatible-range < CharT > R >
constexpr iterator insert_range ( const_iterator pos, R && rg ) ;
(seit C++23)

Fügt Zeichen aus dem Bereich rg vor dem Element (falls vorhanden) ein, auf das pos zeigt.

Entspricht

return insert(pos - begin(),
    std::basic_string(
        std::from_range,
        std​::​forward<R>(rg),
        get_allocator())
);

Wenn pos kein gültiger Iterator auf * this ist, ist das Verhalten undefiniert.

Inhaltsverzeichnis

Parameter

pos - Iterator vor dem die Zeichen eingefügt werden
rg - ein container compatible range

Rückgabewert

Ein Iterator, der auf das erste eingefügte Zeichen verweist, oder pos falls keine Zeichen eingefügt wurden, weil rg leer war.

Komplexität

Linear in der Größe von rg .

Ausnahmen

Wenn std:: allocator_traits < Allocator > :: allocate eine Ausnahme wirft, wird diese erneut geworfen.

Falls die Operation dazu führen würde, dass size() den Wert von max_size() überschreitet, wird std::length_error ausgelöst.

Wenn aus irgendeinem Grund eine Exception ausgelöst wird, hat diese Funktion keine Wirkung ( strong exception safety guarantee ).

Hinweise

Feature-Test Makro Wert Std Funktion
__cpp_lib_containers_ranges 202202L (C++23) Memberfunktionen, die container compatible range akzeptieren

Beispiel

#include <cassert>
#include <iterator>
#include <string>
int main()
{
    const auto source = {'l', 'i', 'b', '_'};
    std::string target{"__cpp_containers_ranges"};
    //                        ^Einfügung erfolgt
    //                         vor dieser Position
    const auto pos = target.find("container");
    assert(pos != target.npos);
    auto iter = std::next(target.begin(), pos);
#ifdef __cpp_lib_containers_ranges
    target.insert_range(iter, source);
#else
    target.insert(iter, source.begin(), source.end());
#endif
    assert(target == "__cpp_lib_containers_ranges");
    //                      ^^^^
}

Siehe auch

fügt Zeichen ein
(öffentliche Elementfunktion)