deque encoger_para_ajustar en C++ STL

El deque ::shrink_to_fit() es una función incorporada en C++ STL que reduce la capacidad del contenedor para que se ajuste a su tamaño y destruye todos los elementos más allá de la capacidad. Esta función no reduce el tamaño del contenedor. Se utiliza cuando a un contenedor se le ha asignado más memoria de la que necesitaba, entonces esta función libera esa cantidad de memoria que se ha asignado extra.

Sintaxis:

deque_name.shrink_to_fit()

Parámetros: Esta función no acepta ningún parámetro.
Valor devuelto: La función no devuelve nada.

Los siguientes programas ilustran la función anterior:
Ejemplo-1

// C++ program to illustrate
// the deque::shrink_to_fit()
#include <bits/stdc++.h>
using namespace std;
  
int main()
{
  
    // Initialized deque
    deque<int> d(10);
  
    for (int i = 0; i < 5; i++)
        d[i] = i;
  
    // Initial deque
    cout << " Deque size initially: " << d.size();
  
    cout << "\n Deque  elements are: ";
    for (int i = 0; i < 10; i++)
        cout << d[i] << " ";
  
    // changes the size of the Deque
    // but does not destroys the elements
    d.resize(7);
  
    cout << "\n Deque size after resize(7): "
         << d.size();
  
    cout << "\n Deque elements after resize(7) are: ";
    for (int i = 0; i < 10; i++)
        cout << d[i] << " ";
  
    // Shrinks to the size
    // till which elements are
    // destroys the elements after 5
    d.shrink_to_fit();
  
    cout << "\n Deque size after shrink_to_fit(): "
         << d.size();
  
    cout << "\n Deque elements after shrink_to_fit() are: ";
    for (int i = 0; i < 10; i++)
        cout << d[i] << " ";
  
    return 0;
}
Producción:

Deque size initially: 10
Deque  elements are: 0 1 2 3 4 0 0 0 0 0 
Deque size after resize(7): 7
Deque elements after resize(7) are: 0 1 2 3 4 0 0 0 0 0 
Deque size after shrink_to_fit(): 7
Deque elements after shrink_to_fit() are: 0 1 2 3 4 0 0 0 0 0

Ejemplo-2

// C++ program to illustrate
// the deque::shrink_to_fit()
#include <bits/stdc++.h>
using namespace std;
  
int main()
{
    // creating a deque
    deque<int> d(100);
  
    cout << "Size of d is : " << d.size() << endl;
  
    // resizing
    d.resize(20);
  
    cout << "Size of d after resize is : " << d.size() << endl;
  
    d.shrink_to_fit();
    return 0;
}
Producción:

Size of d is : 100
Size of d after resize is : 20

Nota: la funciónshrink_to_fit() es muy útil en el caso de un vector donde el tamaño del contenedor cambia con fluidez.

Publicación traducida automáticamente

Artículo escrito por ankit15697 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *