[ Web Proxy ]
URL:
Viewing: http://es.cppreference.com/cpp/string/basic_string/resize [Back]  [Original]

std::basic_string::resize - cppreference.com
cppreference.com
Espacios de nombres
Variantes

std::basic_string::resize

De cppreference.com
 
 
 
std::basic_string
 
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

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

Web Proxy Viewer  |  New URL  |  Original Page