Rumah >pembangunan bahagian belakang >C++ >Bagaimana untuk Memulakan Semua Elemen Tatasusunan C kepada Nilai Bukan Sifar Tertentu?
Memulakan Elemen Tatasusunan kepada Nilai Lalai dalam C
Persoalan timbul daripada permulaan tatasusunan dalam C menggunakan sintaks:
int array[100] = {-1};
Inisialisasi ini menetapkan elemen pertama kepada -1 dan meninggalkan elemen yang tinggal pada 0, yang bukan tingkah laku yang diingini. Untuk menangani perkara ini, perkara berikut perlu dipertimbangkan:
Tafsiran Sintaks
Asusunan int sintaks[100] = {-1}; pada asasnya berkata, "tetapkan elemen pertama kepada -1, dan selebihnya kepada 0." Apabila elemen ditinggalkan dalam pengisytiharan tatasusunan, ia secara automatik dimulakan kepada 0 secara lalai.
Menetapkan Semua Elemen kepada Nilai Bukan Sifar
Untuk memulakan semua elemen kepada nilai bukan sifar seperti -1, seseorang tidak boleh bergantung semata-mata pada permulaan nilai yang ditinggalkan lalai. Sebaliknya, pendekatan berikut boleh digunakan:
std::fill_n(array, 100, -1);
for (int i = 0; i < 100; i++) { array[i] = -1; }
Perbandingan Kelajuan
Kelajuan permulaan lalai berbanding dengan gelung tidak jauh berbeza. Kedua-dua pendekatan memulakan elemen secara berurutan, jadi kerumitan masa kekal sama. Walau bagaimanapun, menggunakan std::fill_n boleh menyimpan beberapa arahan berbanding dengan gelung manual, menjadikannya lebih pantas sedikit dalam kebanyakan kes.
Atas ialah kandungan terperinci Bagaimana untuk Memulakan Semua Elemen Tatasusunan C kepada Nilai Bukan Sifar Tertentu?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!