Areglos en C++ con ejemplos

Explicacion de arrays en C++

En ocasiones tenemos muchos datos de un mismo tipo, para organizarlos se puede usar un arreglo, en ingles se llama array y en español se le conoce principalmente con dos nombres, arreglo y vector, es bueno conocer los dos nombres porque en los libros de programación se le llama de una forma o de otra y por esto unos programadores usan un nombre u otro pero al final son lo mismo.

Con los arreglos economizamos el crear y declarar muchas variables, por ejemplo 30 variables con 30 nombres o identificadores diferentes, si usamos un arreglo solo necesitaremos un identificador(nombre) y especificar el numero para cada sección de memoria, el uso de arreglos no siempre es opcional porque algunas funciones de ciertas librerías en C++ demandan usar un array para devolver una lista de valores después de consultar una base de datos o documento.

Creando nuestro primer arreglo en C++



Antes de empezar a colocar el código de nuestro arreglo colocare el código con las librerías y la función main, esto lo hare por si alguien está empezando en programación y no recuerda muy bien la estructura básica de un programa en C++.

#include <iostream>
#include <cstdlib>
using namespace std;
int main()
{

system("pause");
return 0;
}


No explicare el código anterior porque en los capítulos previos ya se explicó cada parte del mismo, por tanto pasando a los pasos para declarar un areglo empezamos definiendo el tipo de dato que tendrá nuestro array, definir el tipo de dato también lo hacíamos en este lenguaje con todas las variables, añadimos el nombre (también en esto se parece a las variables) y finalizamos colocando entre paréntesis cuadrados "[]" el número de espacios que tendrá nuestro vector es decir el tamaño de nuestro vector, como en el siguiente ejemplo:

int datos[10];


Con esto el arreglo ya está creado, pero hay algo que han de entender y es que cuando de arreglos se trata los espacios o casillas de memoria que podremos utilizar no empiezan desde 1, empiezan desde 0, no es tampoco como para hacerse un gran enredo mental pero es necesario tenerlo en cuenta, veamos esto en funcionamiento y de paso aprendamos como guardar datos dentro de cada casilla de un arreglo.

datos[0]=100;
datos[1]=500;


En el código anterior se ha introducido el valor 100 en la primer casilla del arreglo datos, y el valor 500 en su segunda casilla, esto es muy similar a las variables, lo único que cambia al momento de usarlo es tener en cuenta el número de casilla dentro de los paréntesis cuadrados, por eso como era de esperar para imprimir en pantalla el valor de la segunda casilla haríamos algo como esto con ayuda de cout.

cout << datos[1] << endl;


A continuación repito el código entero por si se perdieron en alguna parte

#include <iostream>
#include <cstdlib>
using namespace std;
int datos[10];
int main()
{
datos[0]=100;
datos[1]=500;
cout << datos[1] << endl;
system("pause");
return 0;
}


Si en lugar de guardar datos quieren guardar texto entonces en lugar de declarar "int datos[10];" cambian el tipo de dato por "string datos[10];", y lo usan igual que una variable de tipo string encerrando siempre entre comillas el texto a guardar.

Algunas dudas resueltas sobre arreglos



De paso aclararé algunas dudas comunes que suelen salir principalmente cuando empiezan a experimentar y se hagan alguna pregunta.
Si declaran por ejemplo un arreglo con 10 espacios "string ejemplo[10];" puesto que dijimos que empieza desde el 0 eso significa que la casilla numero diez se indica con el numero 9 por eso para asignarle o consultar sus datos lo haremos con "ejemplo[9];".

Cuando intento utilizar más casillas que las indicadas al momento de declarar el vector el compilador no me lanzara un error, por ejemplo si declaré "lista[5];" e intento almacenar un dato en "lista[80];" no me lanzaría un error, pero me estaría saliendo de la memoria reservada(literalmente), puesto que esta memoria se reserva en la RAM de la computadora, y ahi es donde estaría escribiendo y leyendo, por tanto una aplicación mal desarrollada que hace uso de casillas no reservadas puede terminar cerrándose inesperadamente o produciendo un conflicto en el sistema como un reinicio inesperado.

Arreglos bidimensionales en C++



Pese a que un arreglo es un listado de datos podemos imaginarlo como en la siguiente imagen:

Array unidimensional

En la imagen anterior tenemos solo una fila con sinco columnas pero que pasaría si tuviésemos cinco columnas y tres filas, a esto es a lo que llamamos arreglo bidimensional y se ve como la siguiente figura.

Ejemplo de array bidimensional

Obviamente lo anterior es de forma representativa(imaginaria), aunque ayuda a entenderlo de forma menos abstracta, en código se ve de la siguiente forma:

// Así se declara este tipo de arreglos
int arreglo1[5][3];
// A continuación introducimos un valor en uno de sus tantos espacios
arreglo[1][1]=5;
// Eso es todo


Ahí se ha creado un arreglo con 5 filas y 3 columnas, puede parecer muy distinto pero en verdad es más de lo mismo, solo que en lugar de indicar un numero entre paréntesis cuadrados se indicaran 2 números, también se le pueden llamar coordenadas.

Esto es todo sobre los arreglos, si ya estudiaron las otras lecciones, operadores, uso de librerías y las demás, este tema se les hizo fácil o de dificultad intermedia, si alguna lección no la estudiaron se les puede complicar un poco entenderlo, en todo caso quedo atento a cualquier pregunta ya sea de este tema o los anteriores. En la siguiente lección se verá sobre los punteros que posterior a haber aprendido este tema ya están listos para lo que viene.
Comentarios y preguntas
daniel:
hola codigazo he visto tus videos como complemento y me parecen perfectos, pero en el video de colas en c++ habías dicho que ensañarías lo que son las listas pero no encuentro el video, talvez lo podrías realizar ya que tienes una manera fácil de explicar
Codigazo:
Bienvenido daniel, acabo de verificar y efectivamente me salté el de las listas. Hoy en horas de la tarde estaré publicando uno de nivel intermedio sobre botones en Winapi. Acabo de añadir una nota entre mis documentos para tan pronto como me sea posible hacerles el de las listas. Muchas gracias por el recordatorio y por su apoyo motivante.