Изменения рейтингов за последние раунды временно удалены. Скоро они будут возвращены. ×

Блог пользователя Hyado

Автор Hyado, история, 4 года назад, По-английски

I got stuck in 102253L - Limited Permutation because of slow printf (´・_・`)

Does anyone know why printf is much slower than cout in C++17(64bit)?

I measured execution time in Custom Test

printf

#include <bits/stdc++.h>
using namespace std;
using ll = long long;
#define rep(i, a, n) for(ll i = a; i < n; ++i)
int main() {
  ll n = 10000000;
  rep(i, 0, n) printf("%d ", n);
}
  • 3587 ms(GNU C++17 9.2.0 (64bit,2msys))
  • 1996 ms(GNU C++17 7.3.0)

cout

#include <bits/stdc++.h>
using namespace std;
using ll = long long;
#define rep(i, a, n) for(ll i = a; i < n; ++i)

int main() {
  ll n = 10000000;
  rep(i, 0, n) cout << 1000000 << " ";
}
  • 1138 ms(GNU C++17 9.2.0 (64bit,2msys))
  • 1544 ms(GNU C++17 7.3.0)

Полный текст и комментарии »

  • Проголосовать: нравится
  • +21
  • Проголосовать: не нравится