std::deque<T,Allocator>::insert_range
Von cppreference.com
| template< container-compatible-range<T> R > iterator insert_range( const_iterator pos, R&& rg ); |
(seit C++23) | |
Fügt Kopien von Elementen aus rg in nicht umgekehrter Reihenfolge vor pos ein.
Alle Iteratoren (einschließlich des end()-Iterators) werden ungültig. Referenzen werden ebenfalls ungültig, es sei denn, pos == begin() oder pos == end(), in diesem Fall werden sie nicht ungültig.
Jeder Iterator im Bereich rg wird genau einmal dereferenziert.
rg darf sich nicht mit dem Container überlappen. Andernfalls ist das Verhalten undefiniert.
Inhalt |
[edit] Parameter
| pos | - | iterator vor dem das einzufügende Element platziert wird (pos kann der end() Iterator sein) |
| rg | - | Ein Container-kompatibler Bereich, d. h. ein input_range, dessen Elemente in T konvertierbar sind |
| Typanforderungen | ||
-T muss aus *ranges::begin(rg) in deque EmplaceConstructible sein. Außerdem muss T in deque MoveInsertable sein und T muss MoveConstructible, MoveAssignable und Swappable erfüllen. Andernfalls ist das Verhalten undefiniert. | ||
[edit] Rückgabewert
Ein iterator, der auf die Kopie des ersten in deque eingefügten Elements zeigt oder auf pos, falls rg leer ist.
Anmerkungen
| Feature-Test-Makro | Wert | Std | Feature |
|---|---|---|---|
__cpp_lib_containers_ranges |
202202L |
(C++23) | Ranges-kompatible Konstruktion und Einfügung |
[edit] Beispiel
Führen Sie diesen Code aus
#include <algorithm> #include <cassert> #include <iterator> #include <deque> #include <list> int main() { auto container = std::deque{1, 2, 3, 4}; auto pos = std::next(container.begin(), 2); assert(*pos == 3); const auto rg = std::list{-1, -2, -3}; #ifdef __cpp_lib_containers_ranges container.insert_range(pos, rg); #else container.insert(pos, rg.cbegin(), rg.cend()); #endif assert(std::ranges::equal(container, std::deque{1, 2, -1, -2, -3, 3, 4})); }
[edit] Siehe auch
| fügt Elemente ein (öffentliche Memberfunktion) | |
| (C++23) |
fügt einen Elementbereich am Anfang hinzu (öffentliche Memberfunktion) |
| (C++23) |
fügt einen Bereich von Elementen am Ende hinzu (öffentliche Memberfunktion) |