std::list<T,Allocator>::assign_range
Von de.cppreference.net
template< /*container-compatible-range*/<T> R >
void assign_range( R&& rg );
|
(seit C++23) | |
Ersetzt Elemente im Container durch eine Kopie jedes Elements in rg.
Alle Iteratoren (einschließlich des end() Iterators) und alle Referenzen auf die Elemente werden ungültig.
Jeder Iterator im Bereich rg wird genau einmal dereferenziert.
Das Verhalten ist undefiniert, wenn rg den Container überlappt.
Parameter
| rg | - |
ein
input_range
mit Referenztyp, der in den Elementtyp des Containers konvertierbar ist
|
| Typanforderungen | ||
|
-
|
||
-
T
nicht
EmplaceConstructible
in
list
aus
*
ranges::
begin
(
rg
)
ist, ist das Verhalten undefiniert.
|
||
Hinweise
| Feature-Test Makro | Wert | Std | Feature |
|---|---|---|---|
__cpp_lib_containers_ranges
|
202202L
|
(C++23) | Ranges-basierte Konstruktion und Einfügung |
Beispiel
Diesen Code ausführen
#include <algorithm> #include <cassert> #include <list> #include <vector> int main() { const auto source = std::vector{2, 7, 1}; auto destination = std::list{3, 1, 4}; #ifdef __cpp_lib_containers_ranges destination.assign_range(source); #else destination.assign(source.cbegin(), source.cend()); #endif assert(std::ranges::equal(source, destination)); }
Siehe auch
|
(C++23)
|
fügt eine Reihe von Elementen ein
(öffentliche Elementfunktion) |
|
(C++23)
|
fügt eine Reihe von Elementen am Anfang hinzu
(öffentliche Elementfunktion) |
|
(C++23)
|
fügt eine Reihe von Elementen am Ende hinzu
(öffentliche Elementfunktion) |
|
weist dem Container Werte zu
(öffentliche Elementfunktion) |
|
|
weist dem Container Werte zu
(öffentliche Elementfunktion) |