Vectores c++

Vectores en c++


Los vectores conocidos también como array a arreglos, nos permiten guardar múltiples valores en una misma varible, de un solo tipo de datos, es una de las estructuras de datos más útiles como herramientas de programación, ya que permiten almacenar gran cantidad de información en posiciones de memoria continua, para lo cual se puede acceder de una manera rápida y fácil.



1.- Vectores

En algunos casos necesitamos almacenar gran cantidad de información, en una variable, pero no sabemos con exactitud cuántos datos serán, pero inferimos que es más de uno, pues los array o vectores nos ayudarán a solucionar este problema.

Por ejemplo: Necesitamos guardar datos de n estudiantes con sus respectivas materias.

2.- Declarar un vector.

Existen diferentes tipos de datos, según lo amerite el caso, recurrimos a los vectores, está conformado por el tipo de datos, nombre del vector y la dimensión que este tendrá.

int numero[10];                           //Vector de enteros con capacidad de guardar 10 números.
char letras[25];                            //Vectores de caracteres con capacidad de guardar 25 de ellos.
double rango[7];                          //Vector de tipo double para guardar 7 números con decimales.
string frases[12];                         //Arreglo de carácteres para almacenar 12 datos tipo string.

3.- Inicializar un vector

Así como las variables, también pueden inicializarse, en diferentes ocasiones es necesario este proceso para inicializar un vector depende del tipo de datos para el que estamos trabajando.

Ejemplo: 

Enteros 

int números[5] = {2, -3, 34, -123, 6};               int valores = {7, 5, 6, -4 ,-3};

De las dos maneras, en la primera indicamos la dimensión (explícito) o tamaño, en la segunda forma no (implícito), ya que con la inicialización el vector hace referencia su tamaño.

Char

char vocales[5] = {'a', 'e', 'i', 'o', 'u'};

String

string nombres[3] = {"Juan", "Pepe" ,"Maria"};

No confundir un char con el string ya que un arreglo de tipo char se puede inicializar así 
char aux[] = "nombre"; 

4.-Acceder al vector

Podemos acceder a un vector, por su ubicación o posición con ayuda de un índice, de manera individual.

Ejemplo: 

string nombres[4] = {"Juan", "Pepe", "Maria", "Ana"};

Para presentar un dato en general se lo realiza así:

cout<<nombre[0]<<endl;  //En este caso presentará Juan.
cout<<nombre[1]<<endl;  //Pepe
cout<<nombre[2]<<endl;  //Maria
cout<<nombre[3]<<endl;  //Ana

Observamos que el índice empieza de cero y no en uno, esto se deber a que la máquina reconoce cero como primer número, de cero a 3 hay cuatro posiciones, por lo tanto, se cumple la dimensión de nuestro vector.

La manera de presentar este vector, es poco eficiente en cuanto a volumen de información, si tenemos un vector con 100 elementos, es tedioso presentar uno a uno, para aquello recurrimos a una estructura de repetición for, ya que es la más completa y cumple lo que se necesita, un inicio y un final.

La i del for, contador, será nuestro índice, servirá para recorrer nuestro vector y presentar todos los datos que tengamos.

Ejemplo

Usemos el ejemplo anterior

string nombres[4] = {"Juan", "Pepe", "Maria", "Ana"};

//Recorriendo el vector y presentando los datos

for(int i = 0; i < 4; i++)
{
   cout<<nombres[i]<<endl;
}

Siempre empezar por cero, la condición debe ser menor a la dimensión, en caso de exceder este valor se produce un error de desbordamiento en los datos, por otro lado, el tamaño o dimensión de un vector no puede ser un número negativo por ende se tiene que validar el ingreso de ese dato.

Los vectores a estudiar se denomina estáticos debidos a la dimnesión asignada al declarar dicha variable, esto tienen una desventaja, mientras los vectores dinámicos se les asgina su dimensión durante la ejecución del programa.

4.- Ejercicio sencillo

Ingresar la dimensión del vector, con sus respectivos datos y multiplicarlo por una constante, todo esto ingresado por teclado.


Ejecución del código




En este ejercicio podemos observar la principal desventaja, la dimensión estática, si alguien ingresa un valor mayor al establecido vamos a tener problemas.

Pero no nos vamos a enfocar en eso, sino asumir una x cantidad y redireccionar el vector a la dimensión dada, si la deficiencia de esto, es el desperdicio de memoria, pero no tomemos en cuenta eso, es más dediquemos aprender a manejar estos tipos de datos, diferenciando el índice de los valores, a muchos se les complica a partir de esto, tener muy claro este tema para avanzar a matrices.


Alguna duda o sugerncia adelante están los comentarios. !


Entradas relacionadas

facebook