İki çağrının performansla hiçbir ilgisi olmayan farklı anlamları vardır; Aslında bu yürütme zamanı hızlandırır (veya olabilir sadece bir yan etkisi). Her birinin ne yaptığını anlamalı ve her programa körü körüne dahil etmemelisiniz çünkü bir optimizasyona benziyorlar.
ios_base::sync_with_stdio(false);
Bu, C ve C ++ standart akışları arasındaki senkronizasyonu devre dışı bırakır. Varsayılan olarak, tüm standart akışlar senkronize edilir, bu da pratikte C ve C ++ tarzı G / Ç'yi karıştırmanıza ve makul ve beklenen sonuçlar almanıza olanak tanır. Senkronizasyonu devre dışı bırakırsanız, C ++ akışlarının kendi bağımsız tamponlarına sahip olmasına izin verilir, bu da C ve C ++ tarzı G / Ç'yi bir macera haline getirir.
Ayrıca, senkronize edilmiş C ++ akışlarının iş parçacığı açısından güvenli olduğunu unutmayın (farklı iş parçacıklarından çıktılar araya girebilir, ancak veri yarışları alamazsınız).
cin.tie(NULL);
Bu cin
,cout
. Bağlı akışlar, diğer akıştaki her bir G / Ç işleminden önce bir akışın otomatik olarak temizlenmesini sağlar.
Varsayılan olarak cin
, cout
duyarlı bir kullanıcı etkileşimi sağlamak için bağlanmıştır . Örneğin:
std::cout << "Enter name:";
std::cin >> name;
Eğer cin
ve cout
bağlı, sen çıkış kullanıcıdan programı istemleri girişinden önce (konsolda yani görünür) temizlenip bekleyebilirsiniz. Akışları çözerseniz, program kullanıcının adını girmesini beklemeyi engelleyebilir ancak "Ad girin" mesajı henüz görünmez (çünkücout
varsayılan olarak arabelleğe alınmış , çıktı konsolda yalnızca istek üzerine veya arabellek dolu).
Yani çöz eğer cin
dan cout
, sifonu emin olmalısınız cout
üzerinde girişini beklemeden önce el ekran şey istediğiniz her zamancin
.
Sonuç olarak, her birinin ne yaptığını bilin, sonuçlarını anlayın ve daha sonra hız gelişiminin olası yan etkisine gerçekten ihtiyacınız olup olmadığına karar verin .