Perulangan for Berbasis Rentang dengan Kontainer
Lakukan iterasi pada kontainer dengan sintaks for berbasis rentang C++11
Perulangan for Berbasis Rentang dengan Kontainer adalah pelajaran C++ Academy gratis di CoddyKit. Ini adalah pelajaran 3 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar C++ Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus C++ Academy mencakup 4 pelajaran total.
Perulangan Modern
C++11 memperkenalkan perulangan for berbasis rentang—lakukan iterasi pada kontainer apa pun tanpa indeks atau iterator eksplisit. Kodenya lebih rapi dan lebih sulit dibuat keliru.
std::vector<int> v = {1, 2, 3, 4, 5};
for (int x : v) {
std::cout << x << " ";
}Berdasarkan Nilai
Contoh di atas menyalin setiap elemen ke dalam x. Tidak masalah untuk tipe yang ringan seperti int, tetapi mahal untuk objek besar.
Berdasarkan Referensi const
Untuk tipe yang tidak sederhana, gunakan const auto& agar tidak terjadi penyalinan dan untuk menandakan bahwa Anda tidak akan mengubah elemen.
std::vector<std::string> names = {"Ada", "Bob"};
for (const auto& name : names) {
std::cout << name << "\n";
}Berdasarkan Referensi untuk Perubahan
Gunakan referensi biasa untuk mengubah elemen secara langsung.
std::vector<int> v = {1, 2, 3};
for (auto& x : v) {
x *= 10;
}
// v is now {10, 20, 30}auto untuk Deduksi Tipe
Biarkan kompiler mendeduksi tipe elemen. Dengan string, vektor berisi struct, dan map, cara ini menghemat banyak pengetikan.
Melakukan Iterasi pada Map
Setiap elemen adalah std::pair<const Key, Value>. Gunakan pengikatan terstruktur (C++17) agar kode lebih rapi.
std::map<std::string, int> ages = {{"Ada",30},{"Bob",24}};
for (const auto& [name, age] : ages) {
std::cout << name << ": " << age << "\n";
}Melakukan Iterasi pada String
std::string adalah kontainer berisi char.
std::string s = "hello";
for (char c : s) {
std::cout << c << " ";
}Perulangan Daftar Inisialisasi
Anda dapat melakukan perulangan berbasis rentang secara langsung pada daftar yang diapit kurung kurawal.
for (int n : {1, 2, 4, 8, 16}) {
std::cout << n << " ";
}Perulangan Berbasis Rentang Terbalik
Perulangan for berbasis rentang standar berjalan maju. Untuk iterasi terbalik, gunakan std::ranges::reverse_view (C++20) atau iterator terbalik secara manual.
#include <ranges>
for (auto x : v | std::views::reverse) {
std::cout << x;
}Keterbatasan
Perulangan berbasis rentang tidak dapat:
- Mengetahui indeks saat ini tanpa penghitung terpisah
- Melewati elemen atau mengubah kontainer selama iterasi
- Melakukan iterasi pada dua kontainer secara paralel (gunakan for biasa atau zip)
Tipe Kustom dalam Perulangan Berbasis Rentang
Agar kelas Anda sendiri dapat digunakan dengan perulangan berbasis rentang, sediakan anggota begin() dan end() atau fungsi bebas yang mengembalikan iterator.
Pemeriksaan Singkat
Bentuk perulangan for berbasis rentang mana yang mengubah elemen dalam kontainer?
Ringkasan
Perulangan for berbasis rentang adalah cara paling rapi untuk melakukan iterasi. Gunakan const auto& secara bawaan, auto& untuk mengubah elemen, dan pengikatan terstruktur untuk mengurai pasangan serta tuple.
Pertanyaan yang Sering Diajukan
Apakah pelajaran “Perulangan for Berbasis Rentang dengan Kontainer” gratis?
Ya — teks lengkap “Perulangan for Berbasis Rentang dengan Kontainer” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus C++ Academy, upgrade ke CoddyKit PRO. Kursus C++ Academy mencakup 4 pelajaran total.
Apa yang akan aku pelajari di “Perulangan for Berbasis Rentang dengan Kontainer”?
Lakukan iterasi pada kontainer dengan sintaks for berbasis rentang C++11 Kamu berlatih C++ Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.
Apakah aku perlu pengalaman untuk memulai C++ Academy?
Tidak diperlukan pengalaman sebelumnya. C++ Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 3 dari 4.
Berapa lama pelajaran “Perulangan for Berbasis Rentang dengan Kontainer” memakan waktu?
Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.
Bisakah aku menulis dan menjalankan kode dalam pelajaran C++ Academy ini?
Ya. Setiap pelajaran C++ Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.
Semua pelajaran dalam kursus ini
- Percabangan: if-else, ternary, switch-case
- Pola Perulangan: for, while, do-while
- Perulangan for Berbasis Rentang dengan Kontainer
- Pengembalian Awal, break, continue, dan goto