El método resize de vector lo que nos permite es cambiar el tamaño de un vector de golpe. Independientemente del tamaño que tuviese el vector, resize redimensionará el vector al tamaño que indiquemos.
Por ejemplo, podemos crear un vector v de números reales con 10 casillas:
vector<double> v(100, 0.5);
Y luego cambiar el tamaño a tan sólo 60 casillas así:
v.resize(60);
Dado que el número de casillas se reduce, las 40 casillas sobrantes simplemente se descartan.
En el caso que invoquemos a resize con un tamaño mayor que el que el vector tiene actualmente, se tendrán que añadir casillas nuevas. Eso implica que éstas deberán inicializarse.
Si se invoca a resize con un tamaño mayor pero del mismo modo que antes:
vector<double> v(100, 0.5); v.resize(200);
Las casillas nuevas (pasamos de 100 a 200) se inicializarán con el valor por defecto, que en el caso de los reales es 0.0.
Pero si se invoca a resize con un número de casillas y un valor de muestra, éste valor se usará para inicializar las casillas nuevas:
vector<double> v(100, 0.5); v.resize(200, -0.5);
Es decir, después de invocar a resize el vector contiene 100 valores a 0.5 seguidos de 100 valores a -0.5.
Utilizando resize, haz un programa que te pide un entero N y crea un vector de Booleanos con N valores a cierto seguidos por N valores a falso. Muestra el vector por pantalla para comprobarlo.
Utilizando resize, haz un programa que te pide dos enteros, N y x y muestra un vector con N repeticiones de los valores desde 1 hasta x. Es decir si N es 4 y x es 3, el programa mostrará:
[1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3]
En preparación