Lecciones del módulo (1/2)
Arrays y Vectores
En C++, la gestión de colecciones de datos se realiza principalmente a través de dos herramientas: los arrays de estilo C (C-style arrays) y los vectores (std::vector). Comprender la diferencia entre la memoria estática y dinámica es fundamental para escribir código eficiente.
1. Arrays Estáticos (C-style Arrays)
Un array es una colección de elementos del mismo tipo almacenados en posiciones contiguas de memoria. El tamaño de un array estático debe conocerse en el momento de la compilación y no puede modificarse posteriormente:
int grades[5] = {18, 22, 25, 28, 30}; // Array di 5 interi
Características principales:
- Tamaño fijo: No es posible añadir o eliminar elementos en tiempo de ejecución (runtime).
- Asignación en el Stack: Son muy rápidos de asignar y liberar.
- Acceso: Se realiza mediante el operador de índice
[](ej.grades[0]para el primer elemento).
2. Vectores Dinámicos (std::vector)
La Biblioteca de Plantillas Estándar (STL) de C++ proporciona la clase std::vector, que representa un array dinámico. Para utilizarla es necesario incluir la cabecera <vector>:
#include <vector>
std::vector<int> numbers; // Crea un vettore vuoto di interi
Operaciones comunes:
- Añadir al final: El método
.push_back(valore)inserta un elemento al final del vector, reasignando automáticamente la memoria si es necesario. - Tamaño: El método
.size()devuelve el número de elementos actualmente presentes en el vector. - Acceso seguro: Además del operador
[], se puede usar el método.at(indice)(ej.numbers.at(0)), que lanza una excepción si el índice está fuera de los límites.
std::vector<int> scores = {90, 85};
scores.push_back(95); // scores ora contiene {90, 85, 95}
std::cout << scores.size(); // Stampa 3
Pruébalo tú mismo
Declara un std::vector de enteros llamado numbers. Añade en su interior los valores 10, 20 y 30 usando el método .push_back(), finalmente imprime su tamaño usando numbers.size().
Mostrar pista
Declara el vector con `std::vector<int> numbers;`, inserta los tres números con `.push_back(valore)`y imprímelo con`std::cout << numbers.size();`.
Solución disponible después de 3 intentos
En el main se define un array grades de 5 elementos. Escribe un bucle for para calcular la suma de todos los elementos del array, almacénala en la variable sum y imprímela con std::cout.
Mostrar pista
Usa un bucle `for (int i = 0; i < 5; ++i)`y suma cada elemento dentro del bucle con`sum += grades[i];`.
Solución disponible después de 3 intentos
¿Cuál es el método correcto para añadir un elemento al final de un std::vector en C++?
std::vector<int> numbers; // come aggiungere il valore 50?