std::deque<T,Allocator>::append_range - cppreference.com
From cppreference.com
|
|
(since C++23) | |
Inserts copies of elements from the range rg before end(), in non-reversing order.
All iterators (including the end() iterator) are invalidated. No references are invalidated.
Each iterator in rg is dereferenced exactly once.
Parameters
Complexity
Linear in size of rg. The number of calls to the constructor of T is exactly equal to the std::ranges::size(rg)).
Exceptions
If an exception is thrown other than by the copy constructor, move constructor, assignment operator, or move assignment operator of T there are no effects. If an exception is thrown while inserting a single element at either end, there are no effects. Otherwise, if an exception is thrown by the move constructor of a non-CopyInsertable T, the effects are unspecified.
Notes
| Feature-test macro | Value | Std | Feature |
|---|---|---|---|
__cpp_lib_containers_ranges |
202202L |
(C++23) | Ranges-aware construction and insertion |
Example
#include <cassert> #include <deque> #include <list> int main() { auto head = std::deque{1, 2, 3, 4}; const auto tail = std::list{-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::deque{1, 2, 3, 4, -5, -6, -7})); }
See also
| adds a range of elements to the beginning (public member function) | |
| inserts a range of elements (public member function) | |
| adds an element to the end (public member function) | |
| constructs an element in-place at the end (public member function) |