Avatar ·

Por qué leer líneas de stdin en C++ es más lento que en Python

¡Hola a todos! Soy un desarrollador principiante de C++ que migró desde Python y me encontré con un problema inesperado. En Python resolvía a menudo problemas donde necesitaba leer grandes volúmenes de datos desde la entrada estándar (por ejemplo, 10 millones de líneas). El código en Python usando `sys.stdin.readline()` funcionaba bastante rápido. Pero cuando intenté escribir un código similar en C++ usando `std::getline` y `std::cin`, el rendimiento resultó ser varias veces peor. Escribí un simple benchmark: leo todas las líneas de stdin y simplemente cuento su cantidad. Aquí está el código en C++ que uso: ```cpp #include #include int main() { std::ios::sync_with_stdio(false); std::cin.tie(nullptr); std::string line; int count = 0; while (std::getline(std::cin, line)) { ++count; } std::cout << count << std::endl; return 0; } ``` Incluso con la sincronización con stdio desactivada (que, según leí, debería acelerar el trabajo), el programa en C++ funciona pe