Namespaces
Variants

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

From cppreference.net
std::basic_string
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)
(3)
basic_string & replace ( size_type pos, size_type count,

const basic_string & str,

size_type pos2, size_type count2 ) ;
(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.

1,2) Esos caracteres son reemplazados con str .
3) Esos caracteres son reemplazados con una subcadena [ pos2 , std:: min ( pos2 + count2, str. size ( ) ) ) de str .
4,5) Esos caracteres son reemplazados por los caracteres en el rango [ cstr , cstr + count2 ) .
Si [ cstr , cstr + count2 ) no es un rango válido , el comportamiento es indefinido.
6,7) Esos caracteres son reemplazados por los caracteres en el rango [ cstr , cstr + Traits :: length ( cstr ) ) .
8,9) Esos caracteres son reemplazados con count2 copias de ch .
10) Esos caracteres son reemplazados con los caracteres en el rango [ first2 , last2 ) como si fuera mediante replace ( first, last, basic_string ( first2, last2, get_allocator ( ) ) ) .
11) Esos caracteres son reemplazados con los caracteres en ilist .
12,13) Convierte implícitamente t a una string view sv como si fuera mediante std:: basic_string_view < CharT, Traits > sv = t ; , luego esos caracteres son reemplazados con los caracteres de sv .
Estas sobrecargas participan en la resolución de sobrecarga solo si 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 .
14) Convierte implícitamente t a una vista de cadena sv como si fuera mediante std:: basic_string_view < CharT, Traits > sv = t ; , luego esos caracteres son reemplazados con los caracteres de la subvista sv. substr ( pos2, count2 ) .
Esta sobrecarga participa en la resolución de sobrecarga solo si 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 es indefinido.

Contenidos

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

1) Lanza std::out_of_range si pos > size ( ) .
3) Lanza std::out_of_range si pos > size ( ) o pos2 > str. size ( ) .
4,6,8) Lanza std::out_of_range si pos > size ( ) .
12,14) Lanza std::out_of_range si pos > size ( ) .

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

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

reemplaza una porción especificada de una cadena con un rango de caracteres
(función miembro pública)
reemplaza ocurrencias 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)