Rumah >pembangunan bahagian belakang >C++ >Bagaimana Saya Harus Menggunakan Julat Berasaskan C 11 Untuk Gelung untuk Memerhati dan Mengubahsuai Elemen Bekas?

Bagaimana Saya Harus Menggunakan Julat Berasaskan C 11 Untuk Gelung untuk Memerhati dan Mengubahsuai Elemen Bekas?

Linda Hamilton
Linda Hamiltonasal
2024-12-20 03:55:12237semak imbas

How Should I Use C  11's Range-Based For Loop for Observing and Modifying Container Elements?

Bagaimanakah rangkaian berasaskan julat C 11 harus digunakan?

Sintaks:

Sintaks untuk julat C 11- berasaskan untuk gelung berbeza-beza bergantung pada operasi yang diingini pada bekas elemen:

Memerhati elemen:

  • Untuk hanya memerhati elemen, tangkap dengan rujukan const: for (const auto& elem : container)

    • Untuk jenis yang murah untuk disalin, mudahkan kepada: untuk (elemen automatik : bekas) jika diingini.

Mengubah suai elemen:

  • Tangkap oleh (bukan const) rujukan: untuk (auto& elem : bekas)

    • Untuk bekas dengan lelaran proksi (seperti std::vector), gunakan: untuk (auto&& elem : bekas)

Garis Panduan:

Memerhati vs. Mengubah suai

Memerhati:

  • Matlamatnya adalah untuk mengakses elemen tanpa mengubah suainya.
  • Gunakan untuk (const auto& elem : bekas) atau untuk (elemen automatik : bekas) apabila elemen murah untuk copy.

Mengubah suai:

  • Matlamatnya adalah untuk mengubah suai elemen di tempatnya.
  • Gunakan untuk (auto& elem : bekas ).
  • Untuk lelaran proksi, gunakan: untuk (auto&& elem : bekas).

Kod Generik:

Dalam kod generik, untuk memastikan keserasian dengan pelbagai jenis dan bekas:

Memerhati :

  • Sentiasa gunakan untuk (const auto& elem : bekas).

Mengubah suai:

  • Gunakan untuk (auto&& elem : bekas).

Atas ialah kandungan terperinci Bagaimana Saya Harus Menggunakan Julat Berasaskan C 11 Untuk Gelung untuk Memerhati dan Mengubahsuai Elemen Bekas?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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