From cppreference.com
template<container-compatible-range<CharT>R>constexpriteratorinsert_range(const_iteratorpos,R&&rg);(since C++23)Inserts characters from the range rg before the element (if any) pointed by pos.
Equivalent to
returninsert(pos-begin(),std::basic_string(std::from_range,std::forward<R>(rg),get_allocator()));If pos is not a valid iterator on *this, the behavior is undefined.
Parameters
Return value
An iterator which refers to the first inserted character, or pos if no characters were inserted because rg was empty.
Complexity
Linear in size of rg.
Exceptions
If std::allocator_traits<Allocator>::allocate throws an exception, it is rethrown.
If the operation would cause
to exceed
, throws
.
If an exception is thrown for any reason, this function has no effect (
strong exception safety guarantee
).
Notes
macroValueStdFeature
(C++23)member functions that accept
Example
Run this code
#include<cassert>#include<iterator>#include<string>intmain(){constautosource={'l','i','b','_'};std::stringtarget{"__cpp_containers_ranges"};// ^insertion will occur// before this positionconstautopos=target.find("container");assert(pos!=target.npos);autoiter=std::next(target.begin(),pos);#ifdef __cpp_lib_containers_rangestarget.insert_range(iter,source);#elsetarget.insert(iter,source.begin(),source.end());#endifassert(target=="__cpp_lib_containers_ranges");// ^^^^}See also