Namespaces
Variants

std::list<T,Allocator>:: prepend_range

From cppreference.net

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

Fügt, in nicht umgekehrter Reihenfolge, Kopien der Elemente in rg vor begin() ein. Jeder Iterator im Bereich rg wird genau einmal dereferenziert.

Keine Iteratoren oder Referenzen werden ungültig.

Inhaltsverzeichnis

Parameter

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

Komplexität

Linear in der Größe von rg .

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 <list>
#include <vector>
int main()
{
    auto container = std::list{0, 1, 2, 3};
    const auto rg = std::vector{-3, -2, -1};
#if __cpp_lib_containers_ranges
    container.prepend_range(rg);
#else
    container.insert(container.begin(), rg.cbegin(), rg.cend());
#endif
    assert(std::ranges::equal(container, std::list{-3, -2, -1, 0, 1, 2, 3}));
}

Siehe auch

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