Why is reading lines from stdin much slower in C++ than Python?

Reading from stdin can be slower in C++ than in Python for a few reasons:

  1. In C++, stdin is typically buffered, meaning that the input is not read one character at a time, but rather in larger blocks. This can make reading from stdin slower, especially if the input is coming from a slow source such as a terminal or a pipe.

  2. C++ streams are generally slower than Python's built-in I/O functions because they provide more functionality and perform additional error checking.

  3. Python's interpreter can optimize certain I/O operations by reading input in larger chunks and buffering it in memory, which can make reading from stdin faster in some cases.

Watch a course Python - The Practical Guide

There are ways to make reading from stdin faster in C++, such as using unbuffered streams or reading the input directly into a buffer using the read function from the <unistd.h> header. However, these methods are more complex and may not be appropriate for all situations.