Bila Menggunakan std::size_t
Soalan:
Adakah dinasihatkan untuk menggantikan std::size_t untuk int dalam gelung dan konteks lain?
Konteks:
Pertimbangkan coretan kod berikut:
<code class="c++">#include <cstdint> int main() { for (std::size_t i = 0; i < 10; ++i) { // std::size_t OK here? Or should I use, say, unsigned int instead? } }</code>
Jawapan:
Secara amnya, std::size_t adalah optimum untuk keadaan gelung di mana perbandingan dibuat terhadap nilai yang wujud dari jenis ini.
Penalaran:
std::size_t ditakrifkan sebagai jenis sebarang saiz ungkapan. Adalah dipastikan bahawa ia boleh mewakili saiz maksimum mana-mana objek C, termasuk tatasusunan. Akibatnya, ia menjamin kapasiti yang mencukupi untuk indeks tatasusunan, menjadikannya pilihan semula jadi untuk lelaran gelung berdasarkan indeks tatasusunan.
Sebagai contoh, dalam coretan kod yang diberikan, memandangkan pembolehubah gelung i digunakan sebagai indeks tatasusunan, std::size_t ialah jenis yang sesuai untuk digunakan.
Pengecualian:
Dalam situasi di mana hanya mengira kepada nombor yang telah ditetapkan, ia mungkin lebih sesuai untuk menggunakan pembolehubah jenis data, int atau int yang tidak ditandatangani (jika saiznya dibenarkan), kerana ia sememangnya sepadan dengan seni bina mesin.
Atas ialah kandungan terperinci Bilakah lebih baik untuk Memilih `std::size_t` Daripada `int` untuk Gelung?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!