std::list<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.
No iterators or 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 for any reason, this function has no effect (strong exception safety guarantee).
Notes
| Feature-test macro | Value | Std | Feature |
|---|---|---|---|
__cpp_lib_containers_ranges |
202202L |
(C++23) | Ranges-aware construction and insertion |
Example
#include <cassert> #include <list> #include <vector> int main() { auto head = std::list{1, 2, 3, 4}; const auto tail = std::vector{-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::list{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) |