C ++ Ranged for Loop (Dengan Contoh)

Dalam tutorial ini, kita akan belajar tentang C ++ berkisar untuk loop dan praktik terbaiknya dengan bantuan contoh.

C ++ 11 memperkenalkan forloop jarak jauh . Ini forloop khusus digunakan dengan koleksi seperti array dan vektor .

Sebagai contoh,

 // initialize an int array int num(3) = (1, 2, 3); // use of ranged for loop for (int var : num) ( // code )

Di sini, forloop jarak jauh mengulang nomor array dari awal hingga akhir. The intvariabel var menyimpan nilai dari elemen array di setiap iterasi.

Sintaksnya adalah,

 for (rangeDeclaration : rangeExpression) ( // code )

Dalam contoh di atas,

  • rangeDeclaration -int var
  • rangeExpression - num
Bekerja dari ranged for loop di C ++

Contoh 1: Ranged for Loop Using Array

 #include using namespace std; int main() ( // initialize array int numArray() = (1, 2, 3, 4, 5); // use of ranged for loop to print array elements for (int n : numArray) ( cout << n << " "; ) return 0; )

Keluaran

 1 2 3 4 5

Dalam contoh ini, kami mendeklarasikan dan menginisialisasi intarray bernama numArray. Di sini, kami menggunakan forloop jarak jauh untuk mencetak elemen numArray.

  • iterasi pertama - n mengambil nilai dari anggota pertama array, yaitu1
  • iterasi kedua - n mengambil nilai 2dan kemudian dicetak dan seterusnya.

Catatan: Perulangan ranged for secara otomatis mengulang array dari awal hingga akhir. Kami tidak perlu menentukan jumlah iterasi dalam loop.

Contoh 2: C ++ Ranged untuk Loop Menggunakan Vektor

 #include #include using namespace std; int main() ( // declare and initialize vector vector num_vector = (1, 2, 3, 4, 5); // print vector elements for (int n : num_vector) ( cout << n << " "; ) return 0; )

Keluaran

 1 2 3 4 5

Contoh 3: Deklarasikan Koleksi di dalam Loop

 #include using namespace std; int main() ( // define the collection in the loop itself for (int n : (1, 2, 3, 4, 5)) ( cout << n << " "; ) return 0; )

Keluaran

 1 2 3 4 5

Di sini, kami telah mendeklarasikan koleksi di dalam loop itu sendiri yaitu

 rangeExpression = (1, 2, 3, 4, 5)

Ini juga merupakan cara yang valid untuk menggunakan forpengulangan jarak , dan cara kerjanya sama seperti saat kita menggunakan larik atau vektor sebenarnya.

C ++ Berkisar untuk Praktik Terbaik Loop

Dalam contoh di atas, kami telah mendeklarasikan variabel dalam forloop untuk menyimpan setiap elemen koleksi di setiap iterasi.

 int num(3) = (1, 2, 3); // copy elements of num to var for (int var : num) ( // code )

Namun, lebih baik menulis loop berbasis jarak seperti ini:

 // access memory location of elements of num for (int &var : num) ( // code )

Perhatikan penggunaan &before var. Sini,

  • int var : num- Menyalin setiap elemen num ke variabel var di setiap iterasi. Ini tidak bagus untuk memori komputer.
  • int &var : num- Tidak menyalin setiap elemen num ke var. Sebaliknya, mengakses elemen num langsung dari num itu sendiri. Ini lebih efisien.

Catatan: The &Operator dikenal sebagai operator referensi. Kami akan mempelajari lebih lanjut tentang itu di petunjuk C ++.

Bekerja dari alamat yang menunjuk di C ++ berkisar untuk loop

Catatan: Jika kita tidak memodifikasi array / vektor / collection dalam loop, lebih baik menggunakan constkata kunci dalam deklarasi range.

 // collection is not modified in the loop for (const int &var : num) ( // code )

Artikel yang menarik...