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

Replaces the characters in the range [begin() + pos,begin() + std::min(pos + count, size())) or [first,last) with given characters.

# Declarations

basic_string& replace( size_type pos, size_type count,
const basic_string& str );

(constexpr since C++20)

basic_string& replace( const_iterator first, const_iterator last,
const basic_string& str );

(constexpr since C++20)

basic_string& replace( size_type pos, size_type count,
const basic_string& str,
size_type pos2, size_type count2 );

(until C++14)

basic_string& replace( size_type pos, size_type count,
const basic_string& str,
size_type pos2, size_type count2 = npos );

(since C++14) (constexpr since C++20)

basic_string& replace( size_type pos, size_type count,
const CharT* cstr, size_type count2 );

(constexpr since C++20)

basic_string& replace( const_iterator first, const_iterator last,
const CharT* cstr, size_type count2 );

(constexpr since C++20)

basic_string& replace( size_type pos, size_type count,
const CharT* cstr );

(constexpr since C++20)

basic_string& replace( const_iterator first, const_iterator last,
const CharT* cstr );

(constexpr since C++20)

basic_string& replace( size_type pos, size_type count,
size_type count2, CharT ch );

(constexpr since C++20)

basic_string& replace( const_iterator first, const_iterator last,
size_type count2, CharT ch );

(constexpr since C++20)

template< class InputIt >
basic_string& replace( const_iterator first, const_iterator last,
InputIt first2, InputIt last2 );

(constexpr since C++20)

basic_string& replace( const_iterator first, const_iterator last,
std::initializer_list<CharT> ilist );

(since C++11) (constexpr since C++20)

template< class StringViewLike >
basic_string& replace( size_type pos, size_type count,
const StringViewLike& t );

(since C++17) (constexpr since C++20)

template< class StringViewLike >
basic_string& replace( const_iterator first, const_iterator last,
const StringViewLike& t );

(since C++17) (constexpr since C++20)

template< class StringViewLike >
basic_string& replace( size_type pos, size_type count,
const StringViewLike& t,
size_type pos2, size_type count2 = npos );

(since C++17) (constexpr since C++20)

# Parameters

# Return value

*this.

# Example

This section is incompleteReason: no example

# Defect reports

DRApplied toBehavior as publishedCorrect behavior
LWG 847C++98there was no exception safety guaranteeadded strong exception safety guarantee
LWG 1323C++98the types of first and last were iteratorchanged to const_iterator
LWG 2946C++17overloads (12,13) caused ambiguity in some casesavoided by making them templates

# See also