Espacios de nombres
Variantes
Acciones

std::basic_string::resize

De cppreference.com
< cpp‎ | string‎ | basic string
 
 
 
std::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

#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)[editar]
close