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