Namensräume
Varianten
Aktionen

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

Von cppreference.com
< cpp‎ | container‎ | deque
 
 
 
 
template< container-compatible-range<T> R >
void prepend_range( R&& rg );
(seit C++23)

Fügt Kopien von Elementen aus rg in nicht umgekehrter Reihenfolge vor begin() ein. Jeder Iterator im Bereich rg wird genau einmal dereferenziert.

Alle Iteratoren (einschließlich des end()-Iterators) werden ungültig. Keine Referenzen werden ungültig.

Inhalt

[bearbeiten] Parameter

rg - Ein Container-kompatibler Bereich, d. h. ein input_range, dessen Elemente in T konvertierbar sind
Typanforderungen
-
T muss EmplaceConstructible in deque aus *ranges::begin(rg) sein. Außerdem muss T MoveInsertable in deque sein und T erfüllt MoveConstructible, MoveAssignable und Swappable. Andernfalls ist das Verhalten undefiniert.

[bearbeiten] Komplexität

Linear zur Größe von rg.

[bearbeiten] Anmerkungen

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

[bearbeiten] Beispiel

#include <algorithm>
#include <cassert>
#include <deque>
#include <vector>
 
int main()
{
    auto container = std::deque{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::deque{-3, -2, -1, 0, 1, 2, 3}));
}

[bearbeiten] Siehe auch

fügt einen Bereich von Elementen am Ende hinzu
(öffentliche Memberfunktion)
fügt einen Bereich von Elementen ein
(öffentliche Memberfunktion)
fügt ein Element am Anfang ein
(öffentliche Memberfunktion)
konstruiert ein Element im-place am Anfang
(öffentliche Memberfunktion)