Espacios de nombres
Variantes
Acciones

std::basic_string::operator+=

De cppreference.com
< cpp‎ | string‎ | basic string
 
 
 
std::basic_string
 
(1)
basic_string& operator+=(const basic_string& str );
(hasta C++20)
constexpr basic_string& operator+=(const basic_string& str );
(desde C++20)
(2)
basic_string& operator+=( CharT ch );
(hasta C++20)
constexpr basic_string& operator+=( CharT ch );
(desde C++20)
(3)
basic_string& operator+=(const CharT* s );
(hasta C++20)
constexpr basic_string& operator+=(const CharT* s );
(desde C++20)
(4)
basic_string& operator+=(std::initializer_list<CharT> ilist );
(desde C++11)
(hasta C++20)
constexpr basic_string& operator+=(std::initializer_list<CharT> ilist );
(desde C++20)
(5)
template<class T >
basic_string& operator+=(const T& t );
(desde C++17)
(hasta C++20)
template<class T >
constexpr basic_string& operator+=(const T& t );
(desde C++20)

Añade caracteres adicionales a la cadena.

1) Añade la cadena str.
2) Añade el carácter ch.
3) Añade la cadena de caracteres terminada en nulo apuntada por s.
4) Añade los caracteres en la lista de inicializadores ilist.
5) Implícitamente convierte t a una vista sobre cadena sv como si fuera mediante std::basic_string_view<CharT, Traits> sv = t;, entonces añade caracteres en la vista sobre cadena sv como si fuera mediante append(sv). Esta sobrecarga solo participa en la resolución de sobrecargas si std::is_convertible_v<const T&, std::basic_string_view<CharT, Traits>> es true y std::is_convertible_v<const T&, const CharT*> es false.

Contenido

[editar]Parámetros

str - Cadena a añadir
ch - Valor del carácter a añadir
s - Puntero a una cadena de caracteres terminada en nulo a añadir.
ilist - std::initializer_list con los caracteres a añadir.
t - Objeto convertible a std::basic_string_view con los caracteres a añadir.

[editar]Valor de retorno

*this

[editar]Complejidad

No existen garantías estándar de complejidad. Las implementaciones típicas se comportan de manera similar a std::vector::insert.

[editar]Excepciones

Si por alguna razón se lanza una excepción, esta función no tiene efecto (garantía de excepción fuerte).(desde C++11)

Si la operación resultara en size() > max_size(), lanza std::length_error.

[editar]Notas

La sobrecarga (2) puede aceptar cualquier tipo que sea implícitamente convertible a CharT. Para std::string, donde CharT es char, el conjunto de tipos aceptables incluye todos los tipos aritméticos. Esto puede tener efectos no deseados.

[editar]Informes de defectos

Los siguientes informes de defectos de cambio de comportamiento se aplicaron de manera retroactiva a los estándares de C++ publicados anteriormente.

ID Aplicado a Comportamiento según lo publicado Comportamiento correcto
LWG 2946 C++17 La sobrecarga string_view ocasiona ambigüedad en algunos casos. Se evitó haciéndola una plantilla.

[editar]Ejemplo

#include <iostream>#include <iomanip>#include <string>   int main(){std::string str; str.reserve(50);//reserva suficiente espacio de almacenamiento para evitar reasignación de memoriastd::cout<<std::quoted(str)<<'\n';//cadena vacía   str +="Esta";std::cout<<std::quoted(str)<<'\n';   str +=std::string(" es ");std::cout<<std::quoted(str)<<'\n';   str +='una';std::cout<<std::quoted(str)<<'\n';   str +={' ','c','a','d','e','n','a','.'};std::cout<<std::quoted(str)<<'\n';   str +=76.85;// equivalente a str += static_cast<char>(76.85), puede que no sea la intenciónstd::cout<<std::quoted(str)<<'\n';}

Salida:

"" "Esta" "Esta es " "Esta es una" "Esta es una cadena." "Esta es una cadena.L"

[editar]Véase también

Añade caracteres al final
(función miembro pública)[editar]
close