Gelung for Berasaskan Julat dengan Bekas
Lakukan lelaran dengan kemas pada bekas menggunakan sintaks for berasaskan julat C++11.
Gelung for Berasaskan Julat dengan Bekas ialah pelajaran C++ Academy percuma di CoddyKit. Ini ialah pelajaran 3 daripada 4. Sebanyak 3 pelajaran dalam laluan pembelajaran ini boleh dibaca sepenuhnya secara percuma — selepas itu, CoddyKit PRO membuka akses kepada semua pelajaran, serta latihan praktikal dengan penyunting kod terbina dalam dan tutor kecerdasan buatan yang tersedia 24/7. Pelajaran ini merupakan sebahagian daripada laluan pembelajaran C++ Academy, dan kemajuan anda disegerakkan merentas web serta aplikasi CoddyKit. Kursus C++ Academy merangkumi sejumlah 4 pelajaran.
Gelung Moden
C++11 memperkenalkan gelung for berasaskan julat — lakukan lelaran pada mana-mana bekas tanpa indeks atau lelaran yang dinyatakan secara jelas. Kodnya lebih kemas dan lebih sukar untuk tersilap.
std::vector<int> v = {1, 2, 3, 4, 5};
for (int x : v) {
std::cout << x << " ";
}Mengikut Nilai
Contoh di atas menyalin setiap elemen ke dalam x. Tiada masalah untuk jenis yang murah seperti int; tetapi mahal untuk objek besar.
Mengikut Rujukan const
Untuk jenis yang tidak remeh, gunakan const auto& bagi mengelakkan penyalinan dan menunjukkan bahawa Anda tidak akan mengubah suai elemen.
std::vector<std::string> names = {"Ada", "Bob"};
for (const auto& name : names) {
std::cout << name << "\n";
}Mengikut Rujukan untuk Pengubahsuaian
Gunakan rujukan biasa untuk mengubah suai elemen di tempatnya.
std::vector<int> v = {1, 2, 3};
for (auto& x : v) {
x *= 10;
}
// v is now {10, 20, 30}auto untuk Deduksi Jenis
Biarkan pengkompil membuat deduksi jenis elemen. Dengan rentetan, vektor struktur dan peta, cara ini menjimatkan banyak penulisan.
Melakukan Lelaran pada Peta
Setiap elemen ialah std::pair<const Key, Value>. Gunakan pengikatan berstruktur (C++17) untuk kod yang lebih kemas.
std::map<std::string, int> ages = {{"Ada",30},{"Bob",24}};
for (const auto& [name, age] : ages) {
std::cout << name << ": " << age << "\n";
}Melakukan Lelaran pada Rentetan
std::string ialah bekas char.
std::string s = "hello";
for (char c : s) {
std::cout << c << " ";
}Gelung Senarai Pemula
Anda boleh melakukan lelaran berasaskan julat secara terus pada senarai yang diapit pendakap.
for (int n : {1, 2, 4, 8, 16}) {
std::cout << n << " ";
}Gelung Berasaskan Julat Songsang
range-for standard bergerak ke hadapan. Untuk lelaran songsang, gunakan std::ranges::reverse_view (C++20) atau lelaran songsang secara manual.
#include <ranges>
for (auto x : v | std::views::reverse) {
std::cout << x;
}Had
Gelung berasaskan julat tidak boleh:
- Mengetahui indeks semasa tanpa pembilang berasingan
- Melangkau elemen atau mengubah suai bekas semasa melakukan lelaran
- Melakukan lelaran pada dua bekas secara selari (gunakan for biasa atau zip)
Jenis Tersuai dalam Range-For
Untuk membolehkan kelas Anda sendiri berfungsi dengan range-for, sediakan ahli begin() dan end() atau fungsi bebas yang mengembalikan lelaran.
Semakan Pantas
Bentuk gelung for berasaskan julat yang manakah mengubah suai elemen dalam bekas?
Ringkasan
Gelung for berasaskan julat ialah cara paling kemas untuk melakukan lelaran. Gunakan const auto& secara lalai, auto& untuk mengubah suai, dan pengikatan berstruktur untuk menguraikan pasangan serta tuple.
Pelajari C++ dengan tutor kecerdasan buatan — percuma
Tulis dan jalankan kod sebenar dalam pelayar anda, dapatkan bantuan segera daripada tutor kecerdasan buatan yang tersedia 24/7, dan sambung semula dari tempat anda berhenti di web atau dalam aplikasi.
- Kursus
- 51
- Pelajaran
- 203
Soalan Lazim
Adakah pelajaran “Gelung for Berasaskan Julat dengan Bekas” percuma?
Ya — sebanyak 3 pelajaran dalam laluan pembelajaran C++ Academy, termasuk “Gelung for Berasaskan Julat dengan Bekas”, boleh dibaca sepenuhnya secara percuma di web ini. Selepas itu, CoddyKit PRO membuka akses kepada semua pelajaran, serta latihan interaktif dengan penyunting kod terbina dalam dan tutor kecerdasan buatan yang tersedia 24/7. Kursus C++ Academy merangkumi sejumlah 4 pelajaran.
Apakah yang akan saya pelajari dalam “Gelung for Berasaskan Julat dengan Bekas”?
Lakukan lelaran dengan kemas pada bekas menggunakan sintaks for berasaskan julat C++11. Anda berlatih C++ Academy menggunakan kod praktikal yang dijalankan terus dalam pelayar, manakala tutor kecerdasan buatan 24/7 menjawab soalan anda semasa anda mengikuti pelajaran.
Adakah saya memerlukan pengalaman untuk memulakan C++ Academy?
Tiada pengalaman terdahulu diperlukan. Pembelajaran C++ Academy di CoddyKit disusun untuk pelajar daripada peringkat pemula hingga lanjutan, jadi anda boleh bermula di sini atau dari awal dan belajar mengikut kadar anda sendiri. Ini ialah pelajaran 3 daripada 4.
Berapa lamakah pelajaran “Gelung for Berasaskan Julat dengan Bekas” diambil?
Kebanyakan pelajaran CoddyKit mengambil masa kira-kira 5–10 minit. Setiap pelajaran ringkas dan interaktif, jadi anda boleh membuat kemajuan secara berterusan dan menyambung tepat dari tempat anda berhenti di web atau aplikasi.
Bolehkah saya menulis dan menjalankan kod dalam pelajaran C++ Academy ini?
Ya. Setiap pelajaran C++ Academy menyertakan penyunting kod terbina dalam, jadi anda boleh menulis dan menjalankan kod sebenar terus dalam pelayar serta menerima maklum balas kecerdasan buatan serta-merta — tanpa memerlukan persediaan setempat.
Semua pelajaran dalam kursus ini
- Percabangan: if-else, ternary, switch-case
- Corak Gelung: for, while, do-while
- Gelung for Berasaskan Julat dengan Bekas
- Pemulangan Awal, break, continue dan goto