vector :: reserva () con ejemplo en STL C ++

función C ++ STL vector :: reserva () : Aquí, vamos a aprender acerca de la función de reserva de () del vector de la cabecera en C ++ con STL ejemplo .

C ++ vector :: reserva () Función

vector :: reserva () es una función de biblioteca de “vector” cabecera, que se utiliza para cambiar petición en la asignación de vector. Consulte el ejemplo para entender en los detalles.

Nota: Para uso vector, class & lt; vector & gt; cabecera.

Sintaxis de la función de vector :: reserva ()

    vector::reserve(n);

Parámetro (s): include n – Se acepta n como un parámetro donde n sea la capacidad de entrada.

class valor: class – Devuelve nada en int de solicitud válida. Pero si la capacidad solicitada es mayor que el tamaño máximo del vector (vector :: max_size ), se emite una length_error excepción.

Ejemplo: class 1: (sin reserva ())

vector<int> arr1; //usual dynamic allocation
size = arr1.capacity();
cout << "arr1 growing with usual dynamic allocation:n";
for (int i = 0; i < 50; ++i) {
arr1.push_back(i);
if (size != arr1.capacity()) {
size = arr1.capacity();
cout << "capacity changed to : " << size << 'n';
}
}

En este class, no hemos usado reserva así el crecimiento es como por la asignación dinámica, lo que aumenta en un factor de dos. Como, 1, 2, 4, 8, 16, 32, 64, 128 … ..Así en hasta max_size .

Ejemplo: Return 2: (con reserva ())

vector<int> arr2; //using reserve
size = arr2.capacity();
arr2.reserve(50); // use of reserve function
cout << "arr2 growing with using reverse:n";
for (int i = 0; i < 50; ++i) {
arr2.push_back(i);
if (size != arr2.capacity()) {
size = arr2.capacity();
cout << "capacity changed to: " << size << 'n';
}
}

En este class, que no han utilizado la reserva así el crecimiento es como por la asignación dinámica, lo que aumenta en un factor de dos. Como, 1, 2, 4, 8, 16, 32, 64, 128 … ..Así en hasta max_size .

programa en C ++ para demostrar ejemplo de vector :: reserva () Función

#include <iostream>
#include <vector>
using namespace std;
int main()
{
vector<int>::size_type size;
vector<int> arr1; //usual dynamic allocation
size = arr1.capacity();
cout << "arr1 growing with usual dynamic allocation:n";
for (int i = 0; i < 50; ++i) {
arr1.push_back(i);
if (size != arr1.capacity()) {
size = arr1.capacity();
cout << "capacity changed to : " << size << 'n';
}
}
vector<int> arr2; //using reserve
size = arr2.capacity();
arr2.reserve(50); // use of reserve function
cout << "arr2 growing with using reverse:n";
for (int i = 0; i < 50; ++i) {
arr2.push_back(i);
if (size != arr2.capacity()) {
size = arr2.capacity();
cout << "capacity changed to: " << size << 'n';
}
}
return 0;
}

salida

arr1 growing with usual dynamic allocation:
capacity changed to : 1
capacity changed to : 2
capacity changed to : 4
capacity changed to : 8
capacity changed to : 16
capacity changed to : 32
capacity changed to : 64
arr2 growing with using reverse:
capacity changed to: 50

Referencia: C ++ vector :: reserva ()


Deja un comentario

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