Los vectores se conocen como arrays dinámicas que pueden cambiar su tamaño automáticamente cuando se inserta o elimina un elemento. Este almacenamiento se mantiene por contenedor.
vector::redimensionar()
La función altera el contenido del contenedor en realidad insertando o eliminando los elementos del mismo. Sucede así,
- Si el valor dado de n es menor que el tamaño actual, se derriban los elementos adicionales.
- Si n es mayor que el tamaño actual del contenedor, los próximos elementos se agregan al final del vector.
Sintaxis:
vectorname.resize(int n, int val)
- n – es el nuevo tamaño del contenedor, expresado en número de elementos.
- val : si se especifica este parámetro, los nuevos elementos se inicializan con este valor.
- Esta función no devuelve nada.
- La única excepción si sucede es que se lanza Bad_alloc , si falla la reasignación.
Parámetros:
Valor de retorno:
Excepción:
Los siguientes programas ilustran el funcionamiento de la función.
- Se reduce el tamaño del contenedor de vectores.
// resizing of the vector
#include <iostream>
#include <vector>
using
namespace
std;
int
main()
{
vector<
int
> vec;
// 5 elements are inserted
// in the vector
vec.push_back(1);
vec.push_back(2);
vec.push_back(3);
vec.push_back(4);
vec.push_back(5);
cout <<
"Contents of vector before resizing:"
<< endl;
// displaying the contents of the
// vector before resizing
for
(
int
i = 0; i < vec.size(); i++)
cout << vec[i] <<
" "
;
cout << endl;
// vector is resized
vec.resize(4);
cout <<
"Contents of vector after resizing:"
<< endl;
// displaying the contents of the
// vector after resizing
for
(
int
i = 0; i < vec.size(); i++)
cout << vec[i] <<
" "
;
return
0;
}
Producción:
Contents of the vector before resizing: 1 2 3 4 5 Contents of the vector after resizing: 1 2 3 4
- Se aumenta el tamaño del contenedor de vectores.
// resizing of the vector
#include <iostream>
#include <vector>
using
namespace
std;
int
main()
{
vector<
int
> vec;
// 5 elements are inserted
// in the vector
vec.push_back(1);
vec.push_back(2);
vec.push_back(3);
vec.push_back(4);
vec.push_back(5);
cout <<
"Contents of vector before resizing:"
<< endl;
// displaying the contents of the
// vector before resizing
for
(
int
i = 0; i < vec.size(); i++)
cout << vec[i] <<
" "
;
cout << endl;
// vector is resized
vec.resize(8);
cout <<
"Contents of vector after resizing:"
<< endl;
// displaying the contents of
// the vector after resizing
for
(
int
i = 0; i < vec.size(); i++)
cout << vec[i] <<
" "
;
return
0;
}
Producción:
Contents of the vector before resizing: 1 2 3 4 5 Contents of the vector after resizing: 1 2 3 4 5 0 0 0
- El tamaño del contenedor de vectores aumenta y los nuevos elementos se inicializan con el valor especificado.
// resizing of the vector
#include <iostream>
#include <vector>
using
namespace
std;
int
main()
{
vector<
int
> vec;
// 5 elements are inserted
// in the vector
vec.push_back(1);
vec.push_back(2);
vec.push_back(3);
vec.push_back(4);
vec.push_back(5);
cout <<
"Contents of vector before resizing:"
<< endl;
// displaying the contents of
// the vector before resizing
for
(
int
i = 0; i < vec.size(); i++)
cout << vec[i] <<
" "
;
cout << endl;
// vector is resized
vec.resize(12, 9);
cout <<
"Contents of vector after resizing:"
<< endl;
// displaying the contents
// of the vector after resizing
for
(
int
i = 0; i < vec.size(); i++)
cout << vec[i] <<
" "
;
return
0;
}
Producción:
Contents of the vector before resizing: 1 2 3 4 5 Contents of the vector after resizing: 1 2 3 4 5 9 9 9 9 9 9 9