std::list<T,Allocator>:: append_range
|
template
<
container-compatible-range
<
T
>
R
>
void append_range ( R && rg ) ; |
(seit C++23)
(constexpr seit C++26) |
|
Fügt Kopien von Elementen aus dem Bereich
rg
vor
end()
ein, in nicht umgekehrter Reihenfolge.
Keine Iteratoren oder Referenzen werden ungültig.
Jeder Iterator in rg wird genau einmal dereferenziert.
Inhaltsverzeichnis |
Parameter
| rg | - |
ein
container kompatibler Bereich
, also ein
input_range
, dessen Elemente konvertierbar zu
T
sind
|
| Typanforderungen | ||
-
T
nicht
EmplaceConstructible
in
list
von
*
ranges::
begin
(
rg
)
ist, ist das Verhalten undefiniert.
|
||
Komplexität
Linear in der Größe von
rg
. Die Anzahl der Aufrufe des Konstruktors von
T
ist genau gleich
std
::
ranges::
size
(
rg
)
)
.
Ausnahmen
Wenn aus irgendeinem Grund eine Exception ausgelöst wird, hat diese Funktion keine Wirkung ( strong exception safety guarantee ).
Hinweise
| Feature-Test Makro | Wert | Std | Feature |
|---|---|---|---|
__cpp_lib_containers_ranges
|
202202L
|
(C++23) | Ranges-bewusste Konstruktion und Einfügung |
Beispiel
#include <cassert> #include <list> #include <vector> int main() { auto head = std::list{1, 2, 3, 4}; const auto tail = std::vector{-5, -6, -7}; #ifdef __cpp_lib_containers_ranges head.append_range(tail); #else head.insert(head.end(), tail.cbegin(), tail.cend()); #endif assert((head == std::list{1, 2, 3, 4, -5, -6, -7})); }
Siehe auch
|
(C++23)
|
fügt einen Bereich von Elementen am Anfang hinzu
(öffentliche Elementfunktion) |
|
(C++23)
|
fügt einen Bereich von Elementen ein
(öffentliche Elementfunktion) |
|
fügt ein Element am Ende hinzu
(öffentliche Elementfunktion) |
|
|
(C++11)
|
konstruiert ein Element direkt am Ende
(öffentliche Elementfunktion) |