std::basic_string::resize
De cppreference.com
< cpp | string | basic string
(1) | ||
void resize( size_type count ); | (hasta C++20) | |
constexprvoid resize( size_type count ); | (desde C++20) | |
(2) | ||
void resize( size_type count, CharT ch ); | (hasta C++20) | |
constexprvoid resize( size_type count, CharT ch ); | (desde C++20) | |
Cambia el tamaño de la cadena que contienen caracteres para que contenga count
caracteres.
Si el tamaño actual es menor que count
se añaden caracteres adicionales.
Si el tamaño actual es mayor que count
, la cadena se reduce a sus primeros count
elementos.
La primera versión inicializa los nuevos caracteres a CharT(), la segunda versión inicializa los nuevos caracteres a ch
.
Contenido |
[editar]Parámetros
count | - | Nuevo tamaño de la cadena. |
ch | - | Carácter con el cual inicializar los nuevos caracteres. |
[editar]Valor de retorno
(Ninguno)
[editar]Excepciones
std::length_error si count > max_size(). Cualquier excepción lanzada por el Allocator
correspondiente.
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)
[editar]Complejidad
Lineal de acuerdo al tamaño de la cadena.
[editar]Ejemplo
Ejecuta este código
#include <iostream>#include <stdexcept> int main(){std::cout<<"Funcionalidad básica:\n";constunsigned desired_length(10);std::string long_string("Dónde está el final?");std::string short_string("Ja"); // Acortarstd::cout<<"Antes: \""<< long_string <<"\"\n"; long_string.resize( desired_length );std::cout<<"Después: \""<< long_string <<"\"\n"; // Alargarstd::cout<<"Antes: \""<< short_string <<"\"\n"; short_string.resize( desired_length, 'a');std::cout<<"Después: \""<< short_string <<"\"\n"; std::cout<<"\nErrores:\n";{std::string s; try{// el tamaño está bien, no length_error// (puede lanzar bad_alloc) s.resize(s.max_size()-1, 'x');}catch(conststd::bad_alloc&){std::cout<<"1. mala asignación\n";} try{// el tamaño está bien, no length_error// (puede lanzar bad_alloc) s.resize(s.max_size(), 'x');}catch(conststd::bad_alloc& exc){std::cout<<"2. mala asignación\n";} try{// el tamaño está mal, lanzar length_error s.resize(s.max_size()+1, 'x');}catch(conststd::length_error&){std::cout<<"3. error de longitud\n";}}}
Posible salida:
Funcionalidad básica: Antes: "Dónde esta el final?" Despues: "Dónde está" Antes: "Ja" Despues: "Jaaaaaaaaa" Errores: 1. mala asignación 2. mala asignación 3. error de longitud
[editar]Véase también
Devuelve el número de caracteres (función miembro pública) |