Avatar ·

¿Hay ventajas de map sobre unordered_map para claves simples (int, string)?

¡Hola a todos! Llevo escribiendo en C++ alrededor de un año, y me atormenta una pregunta. Supongamos que necesito almacenar un diccionario donde las claves son int o string. Sé que `std::map` está implementado como un red-black tree (O(log n) por operación), y `std::unordered_map` como una hash table (O(1) en promedio). Parecería que para claves simples `unordered_map` siempre es más rápido, y a menudo veo que se recomienda a principiantes. Pero en StackOverflow me topé con una discusión donde desarrolladores experimentados afirman que `map` tiene ventajas. Intenté escribir una pequeña prueba: ```cpp #include #include #include #include int main() { std::map ordered; std::unordered_map unordered; // Llenamos 100000 elementos for (int i = 0; i < 100000; ++i) { ordered[i] = "value_" + std::to_string(i); unordered[i] = "value_" + std::to_string(i); } // Búsqueda for (int i = 0; i < 100000; ++i) {