Tracks
/
C++
C++
/
Temario
/
Arrays y vectores
Ar

Arrays y vectores en C++

3 ejercicios

Acerca de Arrays y vectores

Arrays y vectores

C++ ofrece distintos contenedores para almacenar elementos del mismo tipo de forma ordenada. Existe std::array para contenedores de tamaño fijo y std::vector, que incorpora capacidades de redimensionamiento dinámico.

Construcción

Cuando declaras un array o un vector, debes especificar el tipo de los elementos que contendrá el contenedor. Los arrays también necesitan un tamaño. Observa estos ejemplos para ver la inicialización de los dos tipos de contenedor:

#include <array>
#include <string>

// std::array<element_type, size> variable_name {list of elements}
std::array<std::string, 3> indie_rock {"yeah", "yeah", "yeah"};
// indie_rock contains the elements "yeah" three times

Los vectores suelen necesitar más espacio, ya que reservan memoria para seguir creciendo. No necesitas especificar un tamaño:

#include <vector>

// std::vector<element_type> variable_name {list of elements}
std::vector<int> countdown {3, 2, 1};
// my_vector contains the elements 3, 2 and 1

Nota: Todavía no necesitas conocer la mecánica exacta que hay detrás del concepto de plantillas, ya que tendrá su propio concepto más adelante en el árbol del temario.

Acceso a los elementos

Los vectores y los arrays comparten las mismas funciones para acceder a sus elementos. Puedes usar las funciones miembro front y back para obtener el primer y el último elemento del contenedor. También existen at y el operador [] para acceder a elementos concretos.

countdown[0];
// => 3
countdown.at(2);
// => 1
countdown[1] = 4;
// countdown now contains 3, 4 and 1
indie_rock.back() = "yeahs";
// indie_rock is now "yeah", "yeah", "yeahs"

Nota: Si eliges una posición que no está dentro del rango de tu contenedor, [] puede provocar un comportamiento indefinido. La función at lanzaría una excepción, lo que a la larga podría facilitarte la vida.

Modificadores de vector

Como un vector no tiene un tamaño fijo, es posible añadir o eliminar elementos. Dos funciones habituales para ello son emplace_back y pop_back.

std::vector<std::string> witches {"Holly", "Alyssa", "Shannen"};
witches.pop_back();
// Shannen is no longer with the witches
witches.emplace_back("Rose");
// Rose has joined the team

Capacidad

Puedes comprobar si los contenedores están vacíos con la función miembro empty. Si quieres saber el número de elementos, puedes usar size.

Editar en GitHub El enlace se abre en una nueva ventana o pestaña

Aprende Arrays y vectores

La práctica está bloqueada

Desbloquea 4 ejercicios más para practicar Arrays y vectores