cpp-que-son-arrays

Qué son y cómo usar los arrays en C++

En C++ un Array es una colección de elementos del mismo tipo, de tamaño fijo almacenados en ubicaciones de memoria contiguas.

Cada elemento del array puede accederse mediante un índice numérico, comenzando desde cero. Para ello, se usa el operador [].

Declaración de Arrays

La sintaxis básica para declarar un array en C++ es:

Tipo nombreArray[tamaño];

Donde:

  • Tipo: Es el tipo de datos que contendrá el array, como int, double, char, etc.
  • nombreArray: Es el identificador del array.
  • tamaño: Es el número de elementos que el array puede contener.

Por ejemplo, para declarar un array de enteros con 5 elementos:

int misNumeros[5];

En este caso, misNumeros es un array que puede contener 5 enteros.

Creación e inicialización de arrays

Una vez declarado un array, se puede inicializar de varias maneras:

Inicialización con valores predeterminados

Puedes inicializar un array con valores específicos al momento de la declaración:

int numeros[5] = {1, 2, 3, 4, 5};

En este ejemplo, el array numeros se inicializa con los valores 1, 2, 3, 4, y 5.

Inicialización parcial

Si inicializas un array con menos elementos que el tamaño declarado, los elementos restantes se inicializarán con valores por defecto (generalmente 0 para tipos numéricos):

int numeros[5] = {1, 2}; // El array se inicializa como {1, 2, 0, 0, 0}

Inicialización automática

C++ permite también la inicialización automática del tamaño del array si se proporciona una lista de valores:

int numeros[] = {1, 2, 3, 4, 5}; // El tamaño del array se ajusta automáticamente a 5

Uso del Array

Acceso a elementos

Cada elemento de un array se accede mediante un índice, que comienza en 0. La sintaxis para acceder a un elemento es:

nombreArray[indice]

Por ejemplo:

int numeros[] = {1, 2, 3, 4, 5};
int primerNumero = numeros[0]; // primerNumero será 1

Modificación de elementos

Puedes modificar los elementos del array asignando nuevos valores a índices específicos:

int numeros[] = {1, 2, 3, 4, 5};
numeros[2] = 10; // El tercer elemento del array ahora será 10

Operaciones comunes con Arrays

Longitud del Array

Para obtener la cantidad de elementos en un array, puedes usar el operador sizeof:

int numeros[] = {1, 2, 3, 4, 5};
int longitud = sizeof(numeros) / sizeof(numeros[0]); // longitud será 5

Ordenar un Array

Para ordenar arrays puedes usar la función sort de la biblioteca estándar <algorithm>:

#include <algorithm>

int numeros[] = {5, 3, 1, 4, 2};
std::sort(numeros, numeros + 5); // Ordena el array en orden ascendente

Invertir un Array

Para invertir el orden de los elementos, también puedes usar la función reverse de <algorithm>:

#include <algorithm>

int numeros[] = {1, 2, 3, 4, 5};
std::reverse(numeros, numeros + 5); // Invierte el array

Arrays Multidimensionales

Los arrays pueden tener más de una dimensión, lo que permite almacenar datos en estructuras más complejas como matrices.

Ejemplo de Array Bidimensional

int matriz[2][3] = {
    {1, 2, 3},
    {4, 5, 6}
};

En este ejemplo, matriz es un array bidimensional con 2 filas y 3 columnas.

Acceso a Elementos en Arrays Multidimensionales

std::cout << "Elemento en la fila 1, columna 2: " << matriz[1][2] << std::endl; // Imprime 6

Ejemplos prácticos

Calcular la media de un Array de enteros

Este ejemplo muestra cómo calcular la media de los elementos en un array de enteros:

#include <iostream>

int main() {
    int numeros[] = {1, 2, 3, 4, 5};
    int suma = 0;

    for (int i = 0; i < 5; i++) {
        suma += numeros[i];
    }

    double media = static_cast<double>(suma) / 5;
    std::cout << "La media es: " << media << std::endl;

    return 0;
}

Buscar el valor máximo en un Array

Este ejemplo muestra cómo buscar el valor máximo en un array de enteros:

#include <iostream>

int main() {
    int numeros[] = {1, 2, 3, 4, 5};
    int maximo = numeros[0];

    for (int i = 1; i < 5; i++) {
        if (numeros[i] > maximo) {
            maximo = numeros[i];
        }
    }

    std::cout << "El valor máximo es: " << maximo << std::endl;

    return 0;
}

Contar cuántos elementos son mayores que un valor dado

Este ejemplo cuenta cuántos elementos en un array son mayores que un valor específico:

#include <iostream>

int main() {
    int numeros[] = {1, 2, 3, 4, 5};
    int valor = 3;
    int contador = 0;

    for (int i = 0; i < 5; i++) {
        if (numeros[i] > valor) {
            contador++;
        }
    }

    std::cout << "Hay " << contador << " elementos mayores que " << valor << std::endl;

    return 0;
}

Encontrar la Posición de un Elemento en un Array

Este ejemplo muestra cómo encontrar la posición de un elemento específico en un array:

#include <iostream>

int main() {
    int numeros[] = {1, 2, 3, 4, 5};
    int buscar = 4;
    int posicion = -1;

    for (int i = 0; i < 5; i++) {
        if (numeros[i] == buscar) {
            posicion = i;
            break;
        }
    }

    if (posicion != -1) {
        std::cout << "El número " << buscar << " se encuentra en la posición " << posicion << std::endl;
    } else {
        std::cout << "El número " << buscar << " no se encuentra en el array" << std::endl;
    }

    return 0;
}