Respuestas modelo
Consulta aquí las respuestas correctas y explicaciones de las autoevaluaciones y los tests del manual. Ideal para repasar antes de un test o aclarar dudas.
4.06 · STL: Containers e Iteradores
16 preguntas con respuesta en este tema.
🎯 Autoevaluación (3)
¿Qué es la STL en C++?
- A. Un compilador
- B. La Standard Template Library: contenedores, iteradores, algoritmos ✓ CORRECTA
- C. Un IDE
- D. Un sistema operativo
STL: biblioteca estándar de C++ con contenedores (vector, list, map, set), iteradores y algoritmos (sort, find, etc.).
¿Cuál es la diferencia entre `std::vector` y `std::list`?
- A. Son idénticos
- B. vector: arreglo dinámico, acceso O(1). list: lista doblemente enlazada, inserción O(1) en cualquier punto ✓ CORRECTA
- C. list es más rápido para todo
- D. vector no existe en STL
vector: memoria contigua, acceso aleatorio O(1), inserción al final O(1) amortizado. list: doblemente enlazada, inserción/eliminación O(1) en cualquier posición, sin acceso aleatorio.
¿Cómo ordenas un vector con STL?
- A. vector.sort();
- B. std::sort(v.begin(), v.end()); ✓ CORRECTA
- C. sort(v);
- D. v.sort()
std::sort toma dos iteradores (begin/end) y ordena in-place con O(n log n). Requiere #include <algorithm>.
📝 Test · Sección A · Opción múltiple (10)
¿Qué es la STL en C++?
- A. Un compilador
- B. Biblioteca estándar con contenedores, iteradores, algoritmos ✓ CORRECTA
- C. Un sistema operativo
- D. Un IDE
STL: containers (vector, list, map), iteradores, algoritmos (sort, find).
¿Cómo se incluye la STL?
- A. #include <stl>
- B. #include <vector>, <algorithm>, etc. según necesidad ✓ CORRECTA
- C. #include "stl.h"
- D. Automática
STL: headers específicos por contenedor/algoritmo. <vector>, <map>, <algorithm>.
¿Cómo crear un vector de enteros?
- A. vector<int> v;
- B. std::vector<int> v; ✓ CORRECTA
- C. int vector v;
- D. new vector<int>();
std::vector<int> v; (o vector<int> v; con using namespace std;).
¿Cómo agregar elementos a un vector?
- A. v.add(x);
- B. v.push_back(x); ✓ CORRECTA
- C. v.append(x);
- D. v.insert(x);
push_back(x): agrega al final.
¿Cómo ordenar un vector con STL?
- A. v.sort();
- B. std::sort(v.begin(), v.end()); ✓ CORRECTA
- C. sort(v);
- D. v.order()
std::sort con iteradores begin/end. O(n log n).
¿Qué es un std::map?
- A. Vector
- B. Árbol binario de búsqueda con pares clave-valor ✓ CORRECTA
- C. Lista
- D. Set
map: contenedor asociativo clave-valor. Implementado como BST (típicamente RB-tree).
¿Cómo insertar en un map?
- A. m.insert(k, v);
- B. m[k] = v; o m.insert({k, v}); ✓ CORRECTA
- C. m.add(k, v);
- D. m.set(k, v);
Operador [] o insert({}). m["clave"] = valor.
¿Cómo iterar un map?
- A. for (auto x : m)
- B. for (auto& [k, v] : m)
- C. for (auto it = m.begin(); it != m.end(); ++it)
- D. Todas ✓ CORRECTA
Range-based for, structured bindings, o iteradores tradicionales.
¿Cuál es la diferencia entre set y map?
- A. Son iguales
- B. Set almacena solo claves, map clave-valor ✓ CORRECTA
- C. Set es más rápido
- D. Map no existe
set<T>: solo claves. map<K,V>: pares clave-valor.
¿STL sort es estable?
- A. Sí
- B. No (en general) ✓ CORRECTA
- C. Solo con comparación personalizada
- D. Solo en C++20
std::sort: no estable. Para estabilidad: std::stable_sort.
✍️ Test · Sección B · Preguntas abiertas (3)
Explica la diferencia entre vector, list y deque. ¿Cuándo usar cada uno?
vector: array dinámico, acceso O(1) por índice, inserción al final O(1), en medio O(n). list: lista doblemente enlazada, no acceso por índice, inserción O(1) en cualquier punto. deque: doble cola, acceso O(1), inserción O(1) en ambos extremos. Vector por defecto; list para muchas inserciones; deque para colas/pilas.
Diseña un programa que use map para contar la frecuencia de palabras en un texto.
ifstream f("texto.txt"); string palabra; map<string, int> freq; while (f >> palabra) freq[palabra]++; for (auto& [w, c] : freq) cout << w << ": " << c << endl;.
¿Cuándo usarías set en lugar de map? Da un ejemplo.
Set: cuando solo necesitas las claves únicas sin valor asociado. Ej: conjunto de usuarios que han iniciado sesión (solo IDs), tags únicos de posts, vocabulario. Map: cuando cada clave tiene un valor asociado.
📝 ¿Listo para evaluarte?
Regístrate o inicia sesión para tomar la autoevaluación o el test de este tema y registrar tu puntaje.