(C++17) | ||||
Sequence | ||||
(C++11) | ||||
(C++26) | ||||
(C++26) | ||||
(C++11) | ||||
Associative | ||||
Unordered associative | ||||
(C++11) | ||||
(C++11) | ||||
(C++11) | ||||
(C++11) | ||||
Adaptors | ||||
(C++23) | ||||
(C++23) | ||||
(C++23) | ||||
(C++23) | ||||
Views | ||||
(C++20) | ||||
(C++23) | ||||
Tables | ||||
Iterator invalidation | ||||
Member function table | ||||
Non-member function table |
Member types | |||||||||||||||||||||
Member functions | |||||||||||||||||||||
Non-member functions | |||||||||||||||||||||
|
| ||||||||||||||||||||
Deduction guides(C++17) |
template<container-compatible-range<T> R> void append_range( R&& rg); | (since C++23) (constexpr since C++26) | |
Inserts copies of elements from the rangerg beforeend()
, in non-reversing order.
All iterators (including theend()
iterator) are invalidated. No references are invalidated.
Each iterator inrg is dereferenced exactly once.
Contents |
rg | - | acontainer compatible range, that is, aninput_range whose elements are convertible toT |
Type requirements | ||
-IfT is notEmplaceConstructible intodeque from*ranges::begin(rg), the behavior is undefined. |
Linear in size ofrg. The number of calls to the constructor ofT
is exactly equal to thestd::ranges::size(rg)).
If an exception is thrown other than by the copy constructor, move constructor, assignment operator, or move assignment operator ofT
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-CopyInsertableT
, the effects are unspecified.
Feature-test macro | Value | Std | Feature |
---|---|---|---|
__cpp_lib_containers_ranges | 202202L | (C++23) | Ranges-aware construction and insertion |
#include <cassert>#include <deque>#include <list> int main(){auto head=std::deque{1,2,3,4};constauto tail=std::list{-5,-6,-7};#ifdef __cpp_lib_containers_ranges head.append_range(tail);#else head.insert(head.end(), tail.cbegin(), tail.cend());#endifassert((head==std::deque{1,2,3,4,-5,-6,-7}));}
(C++23) | adds a range of elements to the beginning (public member function) |
(C++23) | inserts a range of elements (public member function) |
adds an element to the end (public member function) | |
(C++11) | constructs an element in-place at the end (public member function) |