Rumah > pembangunan bahagian belakang > C++ > Bagaimanakah Saya Boleh Menggunakan Berasaskan Julat Dengan Betul Untuk Gelung dalam C 11?

Bagaimanakah Saya Boleh Menggunakan Berasaskan Julat Dengan Betul Untuk Gelung dalam C 11?

Patricia Arquette
Lepaskan: 2024-12-29 20:19:12
asal
301 orang telah melayarinya

How Can I Correctly Use Range-Based For Loops in C  11?

Cara menggunakan gelung berasaskan julat dengan betul dalam C 11

Gelung berasaskan julat ialah mekanisme lintasan Iterator yang ringkas dan berkuasa yang telah diperkenalkan dalam C 11 diperkenalkan dalam. Ia digunakan untuk lelaran ke atas bekas atau jujukan boleh lelar lain dan unsur rujukan dalam jujukan melalui satu atau lebih pembolehubah. Begini cara menggunakan julat untuk gelung dengan betul:

Sintaks

for (auto elem : container) {
  // 代码体
}
Salin selepas log masuk

Di mana:

  • Kata kunci auto bermaksud bahawa pengkompil akan membuat kesimpulan secara automatik jenis unsur.
  • elem ialah pembolehubah lelaran untuk elemen dalam gelung.
  • bekas ialah bekas atau jujukan boleh lelar untuk diulang.

Mod Tangkapan Elemen

Apabila menggunakan gelung berasaskan julat, anda boleh memilih salah satu daripada tiga mod tangkapan elemen berikut:

  1. Tekan Tangkapan Nilai (elemen automatik): Mencipta salinan setempat unsur. Ini berfungsi untuk jenis yang elemennya murah untuk disalin (cth. int, double, dll.).
  2. Tangkap melalui rujukan (auto&elem): Rujuk terus elemen dalam bekas. Ini digunakan untuk mengubah suai elemen atau jenis di mana penyalinan perlu dielakkan.
  3. Tangkap proksi melalui rujukan (auto&&elem): Untuk melintasi bekas menggunakan "peulang proksi" (cth. std::vector).

Perhatikan atau ubah suai

Berasaskan julat untuk gelung boleh digunakan untuk dua tujuan utama:

  1. Memerhati elemen: Gunakan const auto&elem menangkap elemen untuk memastikan elemen asal tidak diubah suai.
  2. Ubah suai elemen: Gunakan auto&elem untuk menangkap elemen untuk mengubah suai elemen asal secara langsung.

Garis Panduan

Untuk menggunakan berasaskan julat dengan betul untuk Untuk gelung, pertimbangkan garis panduan berikut:

  • Untuk elemen yang diperhatikan, gunakan:
for (const auto& elem : container) // 按引用捕获常量
Salin selepas log masuk
  • Untuk elemen yang diubah suai, gunakan:
for (auto& elem : container) // 按引用捕获
Salin selepas log masuk
  • Jika bekas menggunakan "proksi Iterator", gunakan:
for (auto&& elem : container) // 按引用捕获 proxy
Salin selepas log masuk

Nota dalam Kod Generik

Dalam kod generik, adalah disyorkan untuk menggunakan const auto&elem untuk menangkap elemen untuk pemerhatian dan auto&& ;elem menangkap elemen untuk pengubahsuaian, kerana kaedah ini berfungsi dengan pelbagai jenis bekas dan elemen.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menggunakan Berasaskan Julat Dengan Betul 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