Kedua panggilan memiliki arti berbeda yang tidak ada hubungannya dengan kinerja; fakta bahwa itu mempercepat waktu eksekusi adalah (atau mungkin ) hanya efek samping. Anda harus memahami apa yang masing-masing dari mereka lakukan dan tidak secara membabi buta memasukkan mereka dalam setiap program karena mereka terlihat seperti sebuah optimasi.
ios_base::sync_with_stdio(false);
Ini menonaktifkan sinkronisasi antara aliran standar C dan C ++. Secara default, semua stream standar disinkronkan, yang dalam praktiknya memungkinkan Anda untuk mencampur C / C dan C ++ - gaya I / O dan mendapatkan hasil yang masuk akal dan diharapkan. Jika Anda menonaktifkan sinkronisasi, maka aliran C ++ diizinkan memiliki buffer independennya sendiri, yang menjadikan pencampuran C / dan C ++ - gaya I / O menjadi petualangan.
Perlu diingat juga bahwa aliran C ++ yang disinkronkan aman-thread (output dari utas yang berbeda mungkin saling berhubungan, tetapi Anda tidak mendapatkan balapan data).
cin.tie(NULL);
Ini terlepas cin
dari cout
. Aliran yang diikat memastikan bahwa satu aliran disiram secara otomatis sebelum setiap operasi I / O pada aliran lainnya.
Secara default cin
terkait dengan cout
untuk memastikan interaksi pengguna yang masuk akal. Sebagai contoh:
std::cout << "Enter name:";
std::cin >> name;
Jika cin
dan cout
terikat, Anda dapat mengharapkan output memerah (yaitu, terlihat pada konsol) sebelum program meminta input dari pengguna. Jika Anda membatalkan streaming, program mungkin memblokir menunggu pengguna untuk memasukkan nama mereka tetapi pesan "Masukkan nama" belum terlihat (karena cout
buffered secara default, output memerah / ditampilkan pada konsol hanya atas permintaan atau ketika buffer sudah penuh).
Jadi, jika Anda melepaskan cin
dari cout
, Anda harus memastikan untuk menyiram cout
secara manual setiap kali Anda ingin menampilkan sesuatu sebelum mengharapkan input aktif cin
.
Sebagai kesimpulan, ketahui apa yang mereka masing-masing lakukan, pahami konsekuensinya, dan kemudian putuskan apakah Anda benar-benar menginginkan atau membutuhkan efek samping yang mungkin dari peningkatan kecepatan.