Perbandingan Kelajuan: scanf() vs. cin
Soalan:
Adakah ia benar bahawa menggunakan scanf() dalam program C adalah lebih pantas daripada menggunakan cin?
Jawapan:
Ya, scanf() sememangnya lebih pantas daripada cin dalam C , seperti yang ditunjukkan oleh hasil penandaarasan.
Untuk menjalankan ujian, program mudah telah ditulis untuk membaca senarai besar nombor dan mengira nilai XOR mereka. Program ini telah dilaksanakan dengan kedua-dua stdio's scanf() dan iostream's cin and cout.
Keputusan:
Method | Execution Time |
---|---|
scanf() | 6.4 seconds |
cin and cout | 24.3 seconds |
Perbezaan kelajuan yang ketara ini disebabkan terutamanya oleh fungsi iostream ' overhed dalam mengekalkan penyegerakan dengan stdio C fungsi.
Mengoptimumkan Prestasi cin:
Walau bagaimanapun, dengan melumpuhkan penyegerakan dengan std::ios::sync_with_stdio(false), versi iostream boleh mencapai prestasi yang setanding:
Method | Execution Time |
---|---|
cin and cout (with sync_with_stdio(false)) | 5.5 seconds |
Dengan pengoptimuman ini, iostream mengatasi prestasi scanf() dan menjadi kaedah terpantas.
Kesimpulan:
Walaupun scanf() sememangnya lebih pantas daripada cin, penggunaannya dalam program C biasanya tidak disyorkan kerana:
Atas ialah kandungan terperinci scanf() vs. cin: Manakah Lebih Cepat untuk Input C?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!