std::forward_list<T,Allocator>::prepend_range
Von cppreference.com
< cpp | container | forward list
| 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.
Keine Iteratoren oder 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 forward_list aus *ranges::begin(rg) sein. 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
Führen Sie diesen Code aus
#include <algorithm> #include <cassert> #include <forward_list> #include <vector> int main() { auto container = std::forward_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_after(container.before_begin(), rg.cbegin(), rg.cend()); #endif assert(std::ranges::equal(container, std::forward_list{-3, -2, -1, 0, 1, 2, 3})); }
[bearbeiten] Siehe auch
| (C++23) |
fügt einen Bereich von Elementen ein (öffentliche Memberfunktion) |
| (C++23) |
fügt einen Bereich von Elementen nach einem Element ein (öffentliche Memberfunktion) |
| fügt ein Element am Anfang ein (öffentliche Memberfunktion) | |
| konstruiert ein Element im-place am Anfang (öffentliche Memberfunktion) |