Estructuras de datos en C++
Estructuras de datos en C++
Las estructuras de datos son aquellas que nos permiten almacenar datos en el programa. Tenemos estos tipos de estructuras de datos:
Estas son estructuras de datos que almacenan colecciones de objetos.
-
vector: Un arreglo dinámico. Tu contenedor más utilizado.v.push_back(x): Agregar elemento al final.(O(1))en promedio.v.size(): Obtener el número de elementos.v[i]: Acceder al elemento en el índice i.v.begin(),v.end(): Obtener iteradores al inicio y final.
-
set: Almacena elementos únicos en orden ordenado.s.insert(x): Insertar un elemento.(O(log N)).s.count(x): Verificar si un elemento existe.(O(log N)).s.erase(x): Eliminar un elemento.(O(log N)).
-
map: Almacena pares clave-valor, ordenados por clave.m[key] = value: Insertar/actualizar un par clave-valor.(O(log N)).m.count(key): Verificar si una clave existe.(O(log N)).
-
stack: Estructura Último en entrar, Primero en salir (LIFO).st.push(x),st.pop(),st.top(),st.empty().
-
queue: Estructura Primero en entrar, Primero en salir (FIFO).q.push(x),q.pop(),q.front(),q.empty().
-
priority_queue: Una cola donde el elemento más grande (por defecto) siempre está al frente.pq.push(x),pq.pop(),pq.top(),pq.empty().
-
unordered_map / unordered_set: Versiones con hash de map/set. Son mucho más rápidas en promedio(O(1))pero no mantienen los elementos ordenados. Usa estas por defecto a menos que necesites ordenamiento.