Rumah > pembangunan bahagian belakang > C++ > Bagaimana untuk Memilih Sintaks Gelung `untuk` Berdasarkan Julat C 11 yang Tepat?

Bagaimana untuk Memilih Sintaks Gelung `untuk` Berdasarkan Julat C 11 yang Tepat?

Patricia Arquette
Lepaskan: 2024-12-16 05:55:09
asal
497 orang telah melayarinya

How to Choose the Right C  11 Range-Based `for` Loop Syntax?

Memahami Berasaskan Julat untuk Sintaks dalam C 11

Berasaskan julat untuk gelung dalam C 11 menyediakan sintaks yang dipermudahkan untuk lelaran ke atas bekas. Sintaks berbeza-beza bergantung pada sama ada anda berhasrat untuk memerhati atau mengubah suai elemen bekas.

Untuk Memerhati Elemen

Untuk memerhati elemen tanpa mengubah suainya, sintaks yang disyorkan ialah:

for (const auto& elem : container)
Salin selepas log masuk

Sintaks ini menangkap elemen melalui rujukan const, mengelakkan salinan yang tidak diperlukan dalam kes di mana objek mahal untuk disalin.

Untuk Mengubah Suai Elemen

Jika anda perlu mengubah suai elemen di tempatnya, sintaksnya ialah:

for (auto& elem : container)
Salin selepas log masuk

Sintaks ini menangkap elemen dengan rujukan bukan const, membolehkan anda mengubah suainya dalam gelung body.

Kes Khas: Proxy Iterators

Walau bagaimanapun, untuk bekas yang menggunakan proksi iterator (seperti std::vector), sintaks yang berbeza diperlukan untuk mengubah suai elemen:

for (auto&& elem : container)
Salin selepas log masuk

Sintaks ini menggunakan jenis "&&" pengubah suai untuk berfungsi dengan betul dengan lelaran proksi.

Ringkasan

  • Untuk memerhati elemen, gunakan untuk (const auto& elem : container) atau untuk (auto elem : container ) jika penyalinan adalah murah.
  • Untuk mengubah suai elemen, gunakan untuk (auto& elem : bekas) atau untuk (auto&& elem : container) untuk lelaran proksi.
  • Dalam kod generik, lebih suka menggunakan sintaks rujukan const untuk memerhati dan auto&& untuk mengubah suai untuk mengendalikan kedua-dua iterator standard dan proksi dengan anggun.

Atas ialah kandungan terperinci Bagaimana untuk Memilih Sintaks Gelung `untuk` Berdasarkan Julat C 11 yang Tepat?. 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