¿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++ y me encontré con un problema extraño. Estaba resolviendo un problema en Codeforces donde necesitaba leer 10 millones de enteros desde la entrada estándar. Escribí código en C++ usando std::cin y std::getline, pero el programa tardó agonizantemente mucho — alrededor de 30 segundos. Decidí, para verificar, escribir un script similar en Python con input() normal y sys.stdin.read().split(), ¡y se ejecutó en solo 3-4 segundos! ¿Cómo es posible? Después de todo, C++ se considera un lenguaje más eficiente.
Aquí está mi código en C++:
```cpp
#include
#include
#include
int main() {
std::ios::sync_with_stdio(false);
std::cin.tie(nullptr);
std::vector numbers;
std::string line;
while (std::getline(std::cin, line)) {
// Parseamos números desde la línea
size_t pos = 0;
while (pos < line.size()) {
size_t next = line.find(' ', pos);
if (next == std::string::npos) next = line.size();
No answers yet.
Inicia sesión para dejar una respuesta
Blogs
Refactorización de código legacy en Rust: Guía completa para principiantes
CI/CD para proyectos Swift: configuración de GitHub Actions