Por que ler linhas do stdin em C++ é mais lento que em Python?
Olá a todos! Sou um desenvolvedor C++ iniciante e tive um problema estranho. Estava resolvendo um problema no Codeforces onde precisava ler 10 milhões de inteiros da entrada padrão. Escrevi o código em C++ usando std::cin e std::getline, mas o programa demorou terrivelmente — cerca de 30 segundos. Decidi, para testar, escrever um script similar em Python com input() comum e sys.stdin.read().split(), e ele executou em apenas 3-4 segundos! Como isso é possível? Afinal, C++ é considerado uma linguagem mais performática.
Aqui está meu código em 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)) {
// Parseia os números da linha
size_t pos = 0;
while (pos < line.size()) {
size_t next = line.find(' ', pos);
if (next == std::string::npos) next = line.size()