Rumah > pembangunan bahagian belakang > C++ > Bagaimanakah Saya Menggunakan Secara Berkesan Berasaskan Julat Untuk Gelung dalam C 11?

Bagaimanakah Saya Menggunakan Secara Berkesan Berasaskan Julat Untuk Gelung dalam C 11?

Susan Sarandon
Lepaskan: 2024-12-21 08:13:09
asal
904 orang telah melayarinya

How Do I Effectively Use Range-Based For Loops in C  11?

Berasaskan julat untuk Gelung dalam C 11

Sintaks dan Penggunaan

C 11 memperkenalkan berasaskan julat untuk gelung sebagai cara ringkas dan ekspresif untuk berulang ke atas bekas. Sintaksnya ialah:

for (range_declaration : container) {
  // body of the loop
}
Salin selepas log masuk

di mana:

  • range_declaration mengisytiharkan pembolehubah untuk memegang setiap elemen bekas.
  • bekas ialah bekas yang anda mahu lelaran berakhir.

Merakam melalui Rujukan atau Nilai

Pembolehubah dalam julat_deklarasi boleh ditangkap melalui rujukan atau nilai menggunakan sintaks berikut:

  • auto menangkap elemen mengikut nilai.
  • auto& menangkap elemen dengan rujukan bukan const.
  • const auto& menangkap elemen dengan const rujukan.

Untuk memerhati elemen, di mana anda tidak perlu mengubah suainya, anda harus menggunakan const auto&. Ini menghalang salinan yang tidak diperlukan dan memastikan elemen asal tidak diubah suai.

Jika anda ingin ubah suai elemen, gunakan auto&.

Perhatikan bahawa untuk bekas dengan iterators proksi (seperti std::vector), anda perlu menggunakan auto&& untuk menangkap elemen mengikut nilai.

Garis Panduan Penggunaan berasaskan Julat Untuk

Pertimbangkan garis panduan berikut apabila menggunakan berasaskan julat untuk:

  • Untuk memerhati elemen:

    • untuk (const auto& elem : bekas) (tangkap dengan const rujukan)
    • Jika elemen murah untuk disalin (cth., ints), anda boleh gunakan untuk (elemen automatik : bekas) (tangkap mengikut nilai).
  • Untuk mengubah suai elemen:

    • untuk (auto& elem : bekas) (tangkap dengan bukan const rujukan)
    • Untuk iterator proksi (cth., std::vector), gunakan untuk (auto&& elem : bekas) (tangkap oleh &&).

Pertimbangan Kod Generik

Dalam kod generik, di mana anda tidak tahu jenis elemen yang diulang, gunakan:

  • for (const auto& elem : container) untuk memerhati elemen.
  • for (auto&& elem : container) untuk mengubah suai elemen (berfungsi untuk kedua-dua pengulang biasa dan proksi).

Atas ialah kandungan terperinci Bagaimanakah Saya Menggunakan Secara Berkesan Berasaskan Julat Untuk Gelung dalam C 11?. 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