std::deque::insert_range(3)
π std::deque::insert_range(3) β C++ Standard Libary π
hiii bestie π«Ά welcome to the C++ Standard Libary page for std::deque::insert_range. The title and manual name are folded in right here at the top, and now we can get into the good stuff. π
πΈ NAME πΈ
std::deque::insert_range β okay so this is the whole vibe: std::deque::insert_range. It said what it said. π
β¨ Synopsis β¨
template< container-compatible-range<T> R > (since C++23)
iterator insert_range( const_iterator pos, R&& rg );
Inserts, in non-reversing order, copies of elements in rg before pos.
All iterators (including the end() iterator) are invalidated. References are invalidated too, unless pos == begin() or pos == end(), in which case they are not invalidated.
Each iterator in the range rg is dereferenced exactly once.
The behavior is undefined if rg overlaps with the container. no cap, that's a hard warning π
π Parameters π
posβ iterator before which the content will be inserted;posmay be theend()iterator.rgβ a container compatible range, that is, aninput_rangewhose elements are convertible toT.
π¦ Type requirements π¦
Tmust beEmplaceConstructibleintodequefrom*ranges::begin(rg). Also,Tmust beMoveInsertableintodequeandTsatisfiesMoveConstructible,MoveAssignable, andSwappable. Otherwise, the behavior is undefined.
π Return value π
An iterator that points at the copy of the first element inserted into deque or at pos if rg is empty.
π Notes π
- Feature-test macro
__cpp_lib_containers_rangesβ Value202202Lβ Std(C++23)β Feature: Ranges-aware construction and insertion.
π Example π
// Run this code
#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}));
}
π See also π
insertβ inserts elements (public member function).prepend_range(C++23) β adds a range of elements to the beginning (public member function).append_range(C++23) β adds a range of elements to the end (public member function).
π source/version:http://cppreference.comΒ· date:2024.06.10Β· page:std::deque::insert_range(3). that's the cute little footer sign-off, bestie β bye! π
π¦ where this page comes from
- nixpkgs unstable: stdman 2024.07.05
- opensuse-leap 16.0: stdman 2024.07.05-bp160.1.9 Β· MIT
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms