std::basic_string::resize
De cppreference.com
void resize( size_type count ); |
(1) | (hasta C++20) |
constexpr void resize( size_type count ); |
(desde C++20) | |
void resize( size_type count, CharT ch ); |
(2) | (hasta C++20) |
constexpr void resize( size_type count, CharT ch ); |
(desde C++20) | |
Cambia el tamao de la cadena que contienen caracteres para que contenga count caracteres.
Si el tamao actual es menor que count se aaden caracteres adicionales.
Si el tamao actual es mayor que count, la cadena se reduce a sus primeros count elementos.
La primera versin inicializa los nuevos caracteres a CharT(), la segunda versin inicializa los nuevos caracteres a ch.
Parmetros
| count | - | Nuevo tamao de la cadena. |
| ch | - | Carcter con el cual inicializar los nuevos caracteres. |
Valor de retorno
(Ninguno)
Excepciones
std::length_error si count > max_size().
Cualquier excepcin lanzada por el Allocator correspondiente.
Si por alguna razn se lanza una excepcin, esta funcin no tiene efecto (garanta de excepcin fuerte). (desde C++11)
Complejidad
Lineal de acuerdo al tamao de la cadena.
Ejemplo
Ejecuta este cdigo
#include <iostream>
#include <stdexcept>
int main()
{
std::cout << "Funcionalidad bsica:\n";
const unsigned desired_length(10);
std::string long_string( "Dnde est el final?" );
std::string short_string( "Ja" );
// Acortar
std::cout << "Antes: \"" << long_string << "\"\n";
long_string.resize( desired_length );
std::cout << "Despus: \"" << long_string << "\"\n";
// Alargar
std::cout << "Antes: \"" << short_string << "\"\n";
short_string.resize( desired_length, 'a' );
std::cout << "Despus: \"" << short_string << "\"\n";
std::cout << "\nErrores:\n";
{
std::string s;
try {
// el tamao est bien, no length_error
// (puede lanzar bad_alloc)
s.resize(s.max_size() - 1, 'x');
} catch (const std::bad_alloc&) {
std::cout << "1. mala asignacin\n";
}
try {
// el tamao est bien, no length_error
// (puede lanzar bad_alloc)
s.resize(s.max_size(), 'x');
} catch (const std::bad_alloc& exc) {
std::cout << "2. mala asignacin\n";
}
try {
// el tamao est mal, lanzar length_error
s.resize(s.max_size() + 1, 'x');
} catch (const std::length_error&) {
std::cout << "3. error de longitud\n";
}
}
}
Posible salida:
Funcionalidad bsica:
Antes: "Dnde esta el final?"
Despues: "Dnde est"
Antes: "Ja"
Despues: "Jaaaaaaaaa"
Errores:
1. mala asignacin
2. mala asignacin
3. error de longitud
Vase tambin
| Devuelve el nmero de caracteres (funcin miembro pblica) |