std::basic_string::shrink_to_fit
De cppreference.com
< cpp | string | basic string
void shrink_to_fit(); | (desde C++11) (hasta C++20) | |
constexprvoid shrink_to_fit(); | (desde C++20) | |
Solicita la remoción de capacidad sin usar.
Es una solicitud no obligatoria para reducir la capacidad capacity() al tamaño size(). Depende de la implementación si la solicitud se satisface.
Si (y solamente si) ocurre reasignación de memoria, se invalidan todos los punteros, referencias e iteradores.
Contenido |
[editar]Parámetros
(Ninguno)
[editar]Valor de retorno
(Ninguno)
[editar]Complejidad
(sin especificar) | (hasta C++17) |
Lineal en el tamaño de la cadena | (desde C++17) |
[editar]Ejemplo
Ejecuta este código
#include <iostream>#include <string> int main(){std::string s;std::cout<<"La capacidad al construir por defecto es "<< s.capacity()<<" y el tamano es "<< s.size()<<'\n';for(int i=0; i<42; i++) s.append(" 42 ");std::cout<<"La capacidad despues de un par de anadiduras es "<< s.capacity()<<" y el tamano es "<< s.size()<<'\n'; s.clear();std::cout<<"La capacidad despues de clear() es "<< s.capacity()<<" y el tamano es "<< s.size()<<'\n'; s.shrink_to_fit();std::cout<<"La capacidad despues de shrink_to_fit() es "<< s.capacity()<<" y el tamano es "<< s.size()<<'\n';}
Posible salida:
La capacidad al construir por defecto es 15 y el tamano es 0 La capacidad despues de un par de anadiduras 240 y el tamano es 168 La capacidad despues de clear() es 240 y el tamano es 0 La capacidad despues de shrink_to_fit() es 15 y el tamano es 0
[editar]Véase también
Devuelve el número de caracteres (función miembro pública) | |
Devuelve el número de caracteres que pueden almacenarse en el almacenamiento asignado actual (función miembro pública) |