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)
constexpr void resize( size_type count );
(desde C++20)
(2)
void resize( size_type count, CharT ch );
(hasta C++20)
constexpr void 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";
    const unsigned  desired_length(10);
    std::string     long_string( "Dónde está el final?" );
    std::string     short_string( "Ja" );
 
    // Acortar
    std::cout << "Antes: \"" << long_string << "\"\n";
    long_string.resize( desired_length );
    std::cout << "Después: \"" << long_string <<  "\"\n";
 
    // Alargar
    std::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 (const std::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 (const std::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 (const std::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]