Rumah > pembangunan bahagian belakang > C++ > Bagaimana untuk Memulakan Semua Elemen Tatasusunan C kepada Nilai Bukan Sifar Tertentu?

Bagaimana untuk Memulakan Semua Elemen Tatasusunan C kepada Nilai Bukan Sifar Tertentu?

Susan Sarandon
Lepaskan: 2024-12-28 22:03:11
asal
258 orang telah melayarinya

How to Initialize All Elements of a C   Array to a Specific Non-Zero Value?

Memulakan Elemen Tatasusunan kepada Nilai Lalai dalam C

Persoalan timbul daripada permulaan tatasusunan dalam C menggunakan sintaks:

int array[100] = {-1};
Salin selepas log masuk

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:

  1. std::fill_n: Menggunakan fungsi std::fill_n daripada perpustakaan:
std::fill_n(array, 100, -1);
Salin selepas log masuk
  1. Gelung: Dalam standard C , mencipta gelung untuk menetapkan nilai kepada setiap elemen adalah perlu:
for (int i = 0; i < 100; i++) {
  array[i] = -1;
}
Salin selepas log masuk

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!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan