¡Aprende Cómo Declarar y Usar Vectores en Programación de Forma Fácil y Rápida!post-template-default single single-post postid-46 single-format-standard et_pb_button_helper_class et_fixed_nav et_show_nav et_secondary_nav_enabled et_primary_nav_dropdown_animation_fade et_secondary_nav_dropdown_animation_fade et_header_style_left et_pb_footer_columns4 et_cover_background et_pb_gutter et_pb_gutters3 et_right_sidebar et_divi_theme et-db
771 715 4434

Cuando estás trabajando con una colección de variables o de datos en programación, usualmente los guardas en un tipo de dato específico. En C++, puedes guardarlos en arreglos, estructuras, vectores, cadenas de texto y la lista sigue. Un array es un tipo de dato que nos permite almacenar y gestionar de forma conjunta múltiples valores del mismo tipo. Para facilitar el lenguaje nos referiremos a un array de una dimensión como un vector en este texto.

Declaración e Inicialización de Vectores

En C++, declarar un vector es diferente de inicializarlo. Declararlo significa crear un nuevo vector, mientras que inicializarlo es insertarle elementos en él.

Sintaxis de los vectores en C++

La sintaxis de un vector es la siguiente:

vector <tipo_de_dato> nombre_de_vector;

Cada nuevo vector debe ser declarado usando la palabra clave vector, seguido por el tipo de dato que queremos almacenar encerrado entre paréntesis angulares (el vector puede contener varios tipos de datos: cadenas, enteros, caracteres y la lista sigue). Por último, debemos especificar el nombre del vector, el cual puede ser cualquiera que nosotros decidamos, aunque siempre es conveniente utilizar nombres que hagan nuestro código lo más legible posible.

Lea también: IVA 21% Excel

Cabe aclarar que debemos escribir la directiva #include <vector> al inicio del archivo para poder usar los vectores. Es necesario especificar el tamaño del vector en el momento de su declaración, ya sea explícitamente entre corchetes o bien mediante una lista de valores que le asignamos. En ocasiones puede suceder que no conozcamos el número de elementos que vamos a manejar en el momento de la declaración. Siempre cabe la posibilidad de declarar un vector de un tamaño muy grande y utilizar luego solo una parte del mismo.

En el ejemplo declaramos en la línea 1 un vector llamado v que tiene un tamaño de 2 elementos. En el ejemplo anterior asignamos 5 valores enteros en la declaración del vector v1. Asignamos 3 valores en la declaración del vector v2 que en este caso es de tipo float.

Cómo inicializar un vector en C++ usando el método push_back()

push_back() es uno de los varios métodos que podemos usar para interactuar con los vectores. Podemos añadir un elemento nuevo a un vector con su subinstrucción .push_back(valor). Por ejemplo, si ahora hacemos puntos_equipos.push_back(10) el vector pasaría a ser de 16 posiciones.

En el ejemplo, declaramos el vector, miVector usando la sentencia vector<int> miVector;. Luego, usando el método push_back() le insertamos tres valores (5,10,15). Finalmente, usando un bucle for, iteramos en el vector para mostrar en consola los valores.

Cómo inicializar un vector al mismo tiempo que lo declaramos

Al igual que con los arreglos, podemos asignar valores al vector al momento que lo declaramos.

Lea también: Guía IVA reducido

Vectores de tamaño estático: Cómo inicializar un vector, especificando el tamaño y el valor contenido

Podemos especificar el tamaño y la información que contendrá el vector al momento de declararlo. El arreglo del código de ejemplo fue creado y reservo en memoria el espacio suficiente para contener solo 3 elementos, en el caso de que quisiéramos agregar nuevos elementos generando un nuevo índice, nos daría como resultado un error. Con los vectores, las cosas son un poquito diferente, cuando lo definimos, no tenemos que especificar la capacidad que tendrá, tras bambalinas, el espacio en memoria del vector se modifica al mismo tiempo que cambia el tamaño del vector.

Acceso y Operaciones con Elementos del Vector

Para poder acceder a cada uno de los elementos del vector (para usarlos o para asignarles un valor) es necesario especificar el nombre del vector y la posición del elemento entre corchetes tal y como vemos en las líneas 3 y 4. Podemos dar un valor inicial a todas las posiciones del vector. Esto mostrará por pantalla “15”.

Recorrer un Vector

Una operación muy frecuente es recorrer los elementos de un vector, bien para asignarles un valor o bien para leer su valor y operar con él. En el ejemplo anterior se utiliza un for para recorrer el vector. En la variable i se van generando los valores desde 0 hasta 4, que son los índices de los valores almacenados en el vector (5 datos).

Copia de Vectores

Para copiar los datos de un vector en otro vector no podemos realizar una asignación directa del tipo v1 = v2. Así como utilizamos un arreglo para generar un vector, podemos utilizar los dos métodos vistos en el ejemplo para copiar los valores de un vector hacia otro.

Vectores como Parámetros de Funciones

Cuando definimos una función que acepta un vector como parámetro, en la definición del parámetro pondremos el equivalente a una declaración normal del vector. En la llamada a la función de la línea 18 vemos cómo se pasan ambos vectores como argumentos.

Lea también: ¿Cómo localizar tus XML del SAT?

Paso de elementos individuales a funciones

A la hora de pasar a una función elementos individuales de un vector, se aplican las mismas normas que cuando pasamos variables. Se pueden pasar por valor cuando son datos de entrada o por referencia (el puntero) cuando son datos de salida. Esto es porque normalmente cuando pasamos un parámetro lo que hace C++ realmente es hacer una copia del valor y pasar esta copia a la función.

En el ejemplo se ha definido una función llamada cambiar que intercambia el valor de dos datos enteros que recibe como parámetros. Invocamos a esa función pasando los dos primeros elementos del vector (por referencia) para que la función los intercambie.

Utilidades Adicionales para Vectores

Podemos ordenar un vector usando la función sort(). Para poder usar esta función se debe añadir la línea #include <algorithm> al principio del programa.

Funciones de la librería string.h

En la librería string.h existen algunas funciones que son útiles para inicializar vectores (memset), para copiar vectores (memcpy) y para comparar vectores entre sí (memcmp).

  • memset: Esta función inicializa un vector con el valor que deseemos. Cuando declaramos un vector, el contenido de este son valores aleatorios que existen en la memoria del ordenador en el espacio que le es asignado. A la función memset tenemos que pasarle un primer argumento que es el nombre del vector, un segundo argumento que es el valor con el cual queremos rellenarle y un tercer argumento que es el tamaño en bytes que queremos rellenar.
  • memcpy: A la función memcpy tenemos que pasarle un primer argumento que es el vector destino de la copia, un segundo argumento que es el vector origen y un tercer argumento que es el tamaño en bytes que queremos copiar. En el ejemplo, la función copiar se utiliza para copiar los datos de un vector origen en otro vector destino.
  • memcmp: A la función memcmp tenemos que pasarle como argumentos los dos vectores que deseamos comparar y un tercer argumento que es el tamaño en bytes de elementos que queremos comparar. En el ejemplo anterior comparamos los datos de los vectores v1 y v2.

Carga de Datos en Vectores

Podemos cargar los datos de un vector de un fichero. Veamos un ejemplo en el cual existe un fichero que contiene, en su primera línea, un número entero indicando el número de datos que contiene y en las siguientes líneas, los datos numéricos con decimales, uno en cada línea. En la línea 8 se lee el primer dato del fichero que es el número de datos numéricos que contiene.

Tamaño de los Vectores y sus Elementos

En el ejemplo almacenamos en s1 el tamaño del primer elemento del vector v1 que es de tipo entero. Un entero ocupa 4 bytes. En s2 almacenamos el tamaño del vector v1 completo que es 20, dado que es de enteros y tiene tamaño 5. En s3 almacenamos el tamaño de un float que es también 4.

Ejemplos Prácticos

Definir un vector de 5 componentes de tipo float que representen las alturas de 5 personas. Obtener el promedio de las mismas. En otro método procedemos a sumar todas sus componentes y obtener el promedio. En este problema podemos observar una ventaja de tener almacenadas todas las alturas de las personas. Mientras el programa está en ejecución tenemos el vector alturas a nuestra disposición.

Realizar un programa que pida la carga de dos vectores numéricos enteros de 4 elementos. Obtener la suma de los dos vectores, dicho resultado guardarlo en un tercer vector del mismo tamaño.

tags: #como #declarar #vectores #en #programacion