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
842 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!

sumber:php.cn
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