std::basic_string<CharT,Traits,Allocator>::replace
basic_string& replace( size_type pos, size_type count,
const basic_string& str );
|
(1) | (constexpr desde C++20) |
basic_string& replace( const_iterator first, const_iterator last,
const basic_string& str );
|
(2) | (constexpr desde C++20) |
basic_string& replace( size_type pos, size_type count,
const basic_string& str,
size_type pos2, size_type count2 );
|
(3) | (hasta C++14) |
basic_string& replace( size_type pos, size_type count,
const basic_string& str,
size_type pos2, size_type count2 = npos );
|
(desde C++14) (constexpr desde C++20) |
|
basic_string& replace( size_type pos, size_type count,
const CharT* cstr, size_type count2 );
|
(4) | (constexpr desde C++20) |
basic_string& replace( const_iterator first, const_iterator last,
const CharT* cstr, size_type count2 );
|
(5) | (constexpr desde C++20) |
basic_string& replace( size_type pos, size_type count,
const CharT* cstr );
|
(6) | (constexpr desde C++20) |
basic_string& replace( const_iterator first, const_iterator last,
const CharT* cstr );
|
(7) | (constexpr desde C++20) |
basic_string& replace( size_type pos, size_type count,
size_type count2, CharT ch );
|
(8) | (constexpr desde C++20) |
basic_string& replace( const_iterator first, const_iterator last,
size_type count2, CharT ch );
|
(9) | (constexpr desde C++20) |
template< class InputIt >
basic_string& replace( const_iterator first, const_iterator last,
InputIt first2, InputIt last2 );
|
(10) | (constexpr desde C++20) |
basic_string& replace( const_iterator first, const_iterator last,
std::initializer_list<CharT> ilist );
|
(11) | (desde C++11) (constexpr desde C++20) |
template< class StringViewLike >
basic_string& replace( size_type pos, size_type count,
const StringViewLike& t );
|
(12) | (desde C++17) (constexpr desde C++20) |
template< class StringViewLike >
basic_string& replace( const_iterator first, const_iterator last,
const StringViewLike& t );
|
(13) | (desde C++17) (constexpr desde C++20) |
template< class StringViewLike >
basic_string& replace( size_type pos, size_type count,
const StringViewLike& t,
size_type pos2, size_type count2 = npos );
|
(14) | (desde C++17) (constexpr desde C++20) |
Reemplaza los caracteres en el rango [begin() + pos, begin() + std::min(pos + count, size())) o [first, last) con los caracteres dados.
str.[pos2, std::min(pos2 + count2, str.size())) de str.[cstr, cstr + count2).[cstr, cstr + count2) no es un rango válido, el comportamiento no está definido.[cstr, cstr + Traits::length(cstr)).count2 copias de ch.[first2, last2) como si fuera por replace(first, last, basic_string(first2, last2, get_allocator())).ilist.t a una vista de cadena sv como si fuera por std::basic_string_view<CharT, Traits> sv = t;, luego esos caracteres se reemplazan con los caracteres de sv.std::is_convertible_v<const StringViewLike&,std::basic_string_view<CharT, Traits>> es true y std::is_convertible_v<const StringViewLike&, const CharT*> es false.t a una vista de cadena sv como si fuera por std::basic_string_view<CharT, Traits> sv = t;, luego esos caracteres se reemplazan con los caracteres de la subvista sv.substr(pos2, count2).std::is_convertible_v<const StringViewLike&,std::basic_string_view<CharT, Traits>> es true y std::is_convertible_v<const StringViewLike&, const CharT*> es false.Si [begin(), first) o [first, last) no es un rango válido, el comportamiento no está definido.
Parámetros
| pos | - | inicio de la subcadena que será reemplazada |
| count | - | longitud de la subcadena que será reemplazada |
| first, last | - | rango de caracteres que será reemplazado |
| str | - | cadena a utilizar para el reemplazo |
| pos2 | - | inicio de la subcadena con la que reemplazar |
| count2 | - | número de caracteres con los que reemplazar |
| cstr | - | puntero a la cadena de caracteres a utilizar para el reemplazo |
| ch | - | valor de carácter a utilizar para el reemplazo |
| first2, last2 | - | rango de caracteres a utilizar para el reemplazo |
| ilist | - | lista de inicialización con los caracteres a utilizar para el reemplazo |
| t | - | objeto (convertible a std::basic_string_view ) con los caracteres a utilizar para el reemplazo |
| Requisitos de tipo | ||
-
InputIt
debe cumplir con los requisitos de
LegacyInputIterator
.
|
||
Valor de retorno
* this .
Excepciones
Si la operación causara que
size()
exceda
max_size()
, lanza
std::length_error
.
Si se lanza una excepción por cualquier razón, estas funciones no tienen efecto ( strong exception safety guarantee ).
Ejemplo
|
Esta sección está incompleta
Razón: sin ejemplo |
Informes de defectos
Los siguientes informes de defectos que modifican el comportamiento se aplicaron retroactivamente a los estándares de C++ publicados anteriormente.
| DR | Aplicado a | Comportamiento publicado | Comportamiento correcto |
|---|---|---|---|
| LWG 847 | C++98 | no existía garantía de seguridad de excepciones | se añadió garantía de seguridad fuerte de excepciones |
| LWG 1323 | C++98 |
los tipos de
first
y
last
eran
iterator
|
cambiados a
const_iterator
|
| LWG 2946 | C++17 | las sobrecargas (12,13) causaban ambigüedad en algunos casos | evitado al convertirlas en plantillas |
Véase también
(C++23) |
reemplaza la porción especificada de una cadena con un rango de caracteres (función miembro pública) |
(C++11) |
reemplaza apariciones de una expresión regular con texto de reemplazo formateado (plantilla de función) |
| reemplaza todos los valores que satisfacen criterios específicos con otro valor (plantilla de función & objeto de función de algoritmo) | |
(C++20)(C++20) |