Namespaces
Variants

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

From cppreference.net

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

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.

Wenn rg sich mit * this überschneidet, ist das Verhalten undefiniert.

Inhaltsverzeichnis

Parameter

rg - ein input_range mit Referenztyp, der in den Elementtyp des Containers konvertierbar ist
Typanforderungen
-
Falls std:: assignable_from < T & , ranges:: range_reference_t < R >> nicht modelliert wird, ist das Programm fehlerhaft.
-
Falls T nicht EmplaceConstructible in deque 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

#include <algorithm>
#include <cassert>
#include <deque>
#include <list>
int main()
{
    const auto source = std::list{2, 7, 1};
    auto destination = std::deque{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

fügt eine Reihe von Elementen ein
(öffentliche Elementfunktion)
fügt eine Reihe von Elementen am Anfang hinzu
(öffentliche Elementfunktion)
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)