W3cubDocs

/C++

std::basic_string<CharT,Traits,Allocator>::insert_range

template< container-compatible-range<CharT> R >
constexpr iterator insert_range( const_iterator pos, R&& rg );
(since C++23)

Inserts characters from the range rg before the element (if any) pointed by pos.

Equivalent to.

return insert(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

pos - iterator before which the characters will be inserted
rg - a container compatible range

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

Throws std::length_error if the resultant string size would exceed max_size().

If std::allocator_traits<Allocator>::allocate throws an exception, it is rethrown.

If an exception is thrown for any reason, this function has no effect (strong exception safety guarantee).

Notes

Feature-test macro Value Std Comment
__cpp_lib_containers_ranges 202202L (C++23) member functions that accept container compatible range

Example

See also

inserts characters
(public member function)

© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/w/cpp/string/basic_string/insert_range