Arrays y estructuras de datos en C++

En programación C++, los arrays y las estructuras son tipos de datos fundamentales para organizar y manipular información.

Arrays

Un array es una colección de elementos del mismo tipo almacenados en posiciones contiguas de memoria. Cada elemento se accede mediante un índice, comenzando desde cero.

Declaración básica de un array:

tipo nombre[cantidad];

Por ejemplo, para almacenar cinco enteros:

int valores[5];

Inicialización de arrays

Los arrays se pueden inicializar al momento de la declaración usando llaves:

int datos[5] = { 12, 25, 37, 48, 99 };

Si se proporcionan menos valores, los elementos restantes se establecen en cero. También se puede omitir el tamaño entre corchetes si se proporcionan valores:

int conjunto[] = { 5, 10, 15 };

Acceso a elementos

Los elementos se acceden mediante el nombre del array seguido del índice entre corchetes. Por ejemplo:

int tercerElemento = datos[2];

Los índices van de 0 a tamaño-1. Acceder fuera de rango puede causar errores en tiempo de ejecución.

Arrays multidimensionales

Son arrays de arrays, como tablas bidimensionales. Ejemplo de declaración:

int matriz[3][4];

Se accede a elementos con múltiples índices, por ejemplo, matriz[1][2]. La memoria aumenta exponencialmente con cada dimensión.

Arrays como parámetros

Al pasar un array a una función, se pasa su dirección. En la declaarción, se usan corchetes vacíos:

void procesar(int arr[], int longitud);

Ejemplo completo que imprime un array:

#include <iostream>
using namespace std;

void mostrar(int coleccion[], int tam) {
    for (int i = 0; i < tam; ++i)
        cout << coleccion[i] << " ";
    cout << endl;
}

int main() {
    int nums[] = { 3, 6, 9 };
    mostrar(nums, 3);
    return 0;
}

Arrays de la biblioteca estándar

C++ proporciona la plantilla std::array en el encabezado <array>. Ofrece beneficios como copiado seguro y acceso al tamaño. Ejemplo:

#include <iostream>
#include <array>
using namespace std;

int main() {
    array<int, 4> coleccion = { 2, 4, 6, 8 };
    for (int elemento : coleccion)
        cout << elemento << endl;
    return 0;
}

Estructuras

Las estructuras agrupan datos de diferentes tipos bajo un solo nombre. Se declaran con la palabra clave struct.

Declaración y uso

Ejemplo de estructura para un producto:

struct Producto {
    int peso;
    double precio;
};

Producto manzana;
manzana.peso = 150;
manzana.precio = 0.75;

Los miembros se acceden con el operador punto.

Arrays de estructuras

Se pueden crear arrays que contengan estructuras:

struct Pelicula {
    string titulo;
    int anio;
};

Pelicula peliculas[3];

Ejemplo que llena y muestra un array de estructuras:

#include <iostream>
#include <string>
using namespace std;

struct Libro {
    string autor;
    int paginas;
};

void imprimirLibro(Libro libro) {
    cout << libro.autor << ": " << libro.paginas << " páginas" << endl;
}

int main() {
    Libro coleccion[2];
    coleccion[0] = {"García Márquez", 471};
    coleccion[1] = {"Cervantes", 863};
    for (int i = 0; i < 2; ++i)
        imprimirLibro(coleccion[i]);
    return 0;
}

Punteros a estructuras

Se pueden usar punteros para apuntar a estructuras. El operador flecha -> accede a miembros a través de un puntero.

struct Persona {
    string nombre;
    int edad;
};

Persona ana;
Persona * ptr = &ana;
ptr->nombre = "Ana";

Esto es equivalente a (*ptr).nombre.

Estructuras anidadas

Una estructura puede contener otra estructura como miembro:

struct Direccion {
    string calle;
    string ciudad;
};

struct Empleado {
    string nombre;
    Direccion domicilio;
};

Empleado juan;
juan.domicilio.ciudad = "Madrid";

Etiquetas: C++ Arrays Estructuras programación std::array

Publicado el 8-7 14:53