📚 DE LIBRE ACCESO · SIN LOGIN

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.

111
🎯 autoevaluación
355
📝 test · opción múltiple
111 / 111
✍️ test · abiertas con respuesta
37
temas cubiertos
✕ Limpiar

4.06 · STL: Containers e Iteradores

16 preguntas con respuesta en este tema.

🎯 Autoevaluación (3)

1
🎯 AE

¿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
💡 Por qué es correcta:

STL: biblioteca estándar de C++ con contenedores (vector, list, map, set), iteradores y algoritmos (sort, find, etc.).

2
🎯 AE

¿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
💡 Por qué es correcta:

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.

3
🎯 AE

¿Cómo ordenas un vector con STL?

  • A. vector.sort();
  • B. std::sort(v.begin(), v.end()); ✓ CORRECTA
  • C. sort(v);
  • D. v.sort()
💡 Por qué es correcta:

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)

1
📝 MC

¿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
💡 Por qué es correcta:

STL: containers (vector, list, map), iteradores, algoritmos (sort, find).

2
📝 MC

¿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
💡 Por qué es correcta:

STL: headers específicos por contenedor/algoritmo. <vector>, <map>, <algorithm>.

3
📝 MC

¿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>();
💡 Por qué es correcta:

std::vector<int> v; (o vector<int> v; con using namespace std;).

4
📝 MC

¿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);
💡 Por qué es correcta:

push_back(x): agrega al final.

5
📝 MC

¿Cómo ordenar un vector con STL?

  • A. v.sort();
  • B. std::sort(v.begin(), v.end()); ✓ CORRECTA
  • C. sort(v);
  • D. v.order()
💡 Por qué es correcta:

std::sort con iteradores begin/end. O(n log n).

6
📝 MC

¿Qué es un std::map?

  • A. Vector
  • B. Árbol binario de búsqueda con pares clave-valor ✓ CORRECTA
  • C. Lista
  • D. Set
💡 Por qué es correcta:

map: contenedor asociativo clave-valor. Implementado como BST (típicamente RB-tree).

7
📝 MC

¿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);
💡 Por qué es correcta:

Operador [] o insert({}). m["clave"] = valor.

8
📝 MC

¿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
💡 Por qué es correcta:

Range-based for, structured bindings, o iteradores tradicionales.

9
📝 MC

¿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
💡 Por qué es correcta:

set<T>: solo claves. map<K,V>: pares clave-valor.

10
📝 MC

¿STL sort es estable?

  • A. Sí
  • B. No (en general) ✓ CORRECTA
  • C. Solo con comparación personalizada
  • D. Solo en C++20
💡 Por qué es correcta:

std::sort: no estable. Para estabilidad: std::stable_sort.

✍️ Test · Sección B · Preguntas abiertas (3)

11
✍️ AB

Explica la diferencia entre vector, list y deque. ¿Cuándo usar cada uno?

💡 Por qué es correcta:

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.

12
✍️ AB

Diseña un programa que use map para contar la frecuencia de palabras en un texto.

💡 Por qué es correcta:

ifstream f("texto.txt"); string palabra; map<string, int> freq; while (f >> palabra) freq[palabra]++; for (auto& [w, c] : freq) cout << w << ": " << c << endl;.

13
✍️ AB

¿Cuándo usarías set en lugar de map? Da un ejemplo.

💡 Por qué es correcta:

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.