std::basic_string<CharT,Traits,Allocator>::replace
: cppreference.com
<tbody>
</tbody>
<tbody class="t-dcl-rev t-dcl-rev-num ">
</tbody><tbody>
</tbody>
<tbody class="t-dcl-rev t-dcl-rev-num ">
</tbody><tbody>
</tbody>
<tbody class="t-dcl-rev t-dcl-rev-num ">
</tbody><tbody>
</tbody>
<tbody class="t-dcl-rev t-dcl-rev-num ">
</tbody><tbody>
</tbody>
<tbody class="t-dcl-rev t-dcl-rev-num ">
</tbody><tbody>
</tbody>
<tbody class="t-dcl-rev t-dcl-rev-num ">
</tbody><tbody>
</tbody>
<tbody class="t-dcl-rev t-dcl-rev-num ">
</tbody><tbody>
</tbody>
<tbody class="t-dcl-rev t-dcl-rev-num ">
</tbody><tbody>
</tbody>
<tbody class="t-dcl-rev t-dcl-rev-num ">
</tbody><tbody>
</tbody>
<tbody class="t-dcl-rev t-dcl-rev-num ">
</tbody><tbody>
</tbody>
<tbody class="t-dcl-rev t-dcl-rev-num ">
</tbody><tbody>
</tbody>
<tbody class="t-dcl-rev t-dcl-rev-num ">
</tbody><tbody>
</tbody>
<tbody class="t-dcl-rev t-dcl-rev-num ">
</tbody><tbody>
</tbody>
<tbody class="t-dcl-rev t-dcl-rev-num ">
</tbody><tbody>
</tbody>
| (1) | ||
basic_string& replace( size_type pos, size_type count, const basic_string& str ); |
(C++20) | |
constexpr basic_string& replace( size_type pos, size_type count, const basic_string& str ); |
(C++20) | |
| (1) | ||
basic_string& replace( const_iterator first, const_iterator last, const basic_string& str ); |
(C++20) | |
constexpr basic_string& replace( const_iterator first, const_iterator last, const basic_string& str ); |
(C++20) | |
| (2) | ||
basic_string& replace( size_type pos, size_type count, const basic_string& str, size_type pos2, size_type count2 ); |
(C++14) | |
basic_string& replace( size_type pos, size_type count, const basic_string& str, size_type pos2, size_type count2 = npos ); |
(C++14) (C++20) |
|
constexpr basic_string& replace( size_type pos, size_type count, const basic_string& str, size_type pos2, size_type count2 = npos ); |
(C++20) | |
| (3) | ||
template< class InputIt > basic_string& replace( const_iterator first, const_iterator last, InputIt first2, InputIt last2 ); |
(C++20) | |
template< class InputIt > constexpr basic_string& replace( const_iterator first, const_iterator last, InputIt first2, InputIt last2 ); |
(C++20) | |
| (4) | ||
basic_string& replace( size_type pos, size_type count, const CharT* cstr, size_type count2 ); |
(C++20) | |
constexpr basic_string& replace( size_type pos, size_type count, const CharT* cstr, size_type count2 ); |
(C++20) | |
| (4) | ||
basic_string& replace( const_iterator first, const_iterator last, const CharT* cstr, size_type count2 ); |
(C++20) | |
constexpr basic_string& replace( const_iterator first, const_iterator last, const CharT* cstr, size_type count2 ); |
(C++20) | |
| (5) | ||
basic_string& replace( size_type pos, size_type count, const CharT* cstr ); |
(C++20) | |
constexpr basic_string& replace( size_type pos, size_type count, const CharT* cstr ); |
(C++20) | |
| (5) | ||
basic_string& replace( const_iterator first, const_iterator last, const CharT* cstr ); |
(C++20) | |
constexpr basic_string& replace( const_iterator first, const_iterator last, const CharT* cstr ); |
(C++20) | |
| (6) | ||
basic_string& replace( size_type pos, size_type count, size_type count2, CharT ch ); |
(C++20) | |
constexpr basic_string& replace( size_type pos, size_type count, size_type count2, CharT ch ); |
(C++20) | |
| (6) | ||
basic_string& replace( const_iterator first, const_iterator last, size_type count2, CharT ch ); |
(C++20) | |
constexpr basic_string& replace( const_iterator first, const_iterator last, size_type count2, CharT ch ); |
(C++20) | |
| (7) | ||
basic_string& replace( const_iterator first, const_iterator last, std::initializer_list<CharT> ilist ); |
(C++11) (C++20) |
|
constexpr basic_string& replace( const_iterator first, const_iterator last, std::initializer_list<CharT> ilist ); |
(C++20) | |
| (8) | ||
template < class T > basic_string& replace( size_type pos, size_type count, const T& t ); |
(C++17) (C++20) |
|
template < class T > constexpr basic_string& replace( size_type pos, size_type count, const T& t ); |
(C++20) | |
| (8) | ||
template < class T > basic_string& replace( const_iterator first, const_iterator last, const T& t ); |
(C++17) (C++20) |
|
template < class T > constexpr basic_string& replace( const_iterator first, const_iterator last, const T& t ); |
(C++20) | |
| (9) | ||
template < class T > basic_string& replace( size_type pos, size_type count, const T& t, size_type pos2, size_type count2 = npos ); |
(C++17) (C++20) |
|
template < class T > constexpr basic_string& replace( size_type pos, size_type count, const T& t, size_type pos2, size_type count2 = npos ); |
(C++20) | |
[pos, pos + count) [first, last)
1)
str2)
str [pos2, pos2 + count2) count2==npos str.size() [pos2, str.size()) 4)
[cstr, cstr + count2) 5)
[cstr, cstr + Traits::length(cstr)) 6)
ch count2 7)
ilist 8)
std::basic_string_view<CharT, Traits> sv = t; t sv std::is_convertible_v<const T&, std::basic_string_view<CharT, Traits>> true std::is_convertible_v<const T&, const CharT*> false 9)
std::basic_string_view<CharT, Traits> sv = t; t sv [pos2, pos2 + count2) count2==npos sv.size() [pos2, sv.size()) std::is_convertible_v<const T&, std::basic_string_view<CharT, Traits>> true std::is_convertible_v<const T&, const CharT*> false .| pos | - | |
| count | - | |
| first, last | - | |
| str | - | |
| pos2 | - | |
| count2 | - | |
| cstr | - | |
| ch | - | |
| first2, last2 | - | |
| ilist | - | |
| t | - | (std::basic_string_view ) |
*this
pos > length() pos2 > str.length() std::out_of_range
(max_size()) std::length_error
() (C++11)
C++
| DR | |||
|---|---|---|---|
| LWG 2946 | C++17 | string_view overload causes ambiguity in some cases
|
avoided by making it a template |
Run this code
#include <iostream>
#include <string>
int main()
{
std::string str("The quick brown fox jumps over the lazy dog.");
str.replace(10, 5, "red"); // (5)
str.replace(str.begin(), str.begin() + 3, 1, 'A'); // (6)
std::cout << str << '\n';
}
:
A quick red fox jumps over the lazy dog.