Melakukan Iterasi pada Vektor: indeks, range-for, iterator
Lakukan iterasi pada vektor dengan akses indeks, range-for, dan iterator eksplisit
Melakukan Iterasi pada Vektor: indeks, range-for, iterator adalah pelajaran C++ Academy gratis di CoddyKit. Ini adalah pelajaran 2 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.
Tiga Cara Melakukan Iterasi
Anda dapat menelusuri vector dengan:
for (size_t i = 0; i < v.size(); ++i)berbasis indeksfor (auto& x : v)berbasis rentangfor (auto it = v.begin(); it != v.end(); ++it)menggunakan iterator
Perulangan Berbasis Indeks
Sudah dikenal dari C. Berguna ketika Anda memerlukan indeks sekaligus nilainya.
for (size_t i = 0; i < v.size(); ++i) {
std::cout << i << ": " << v[i] << "\n";
}size_t dibandingkan int
size() mengembalikan size_t — tipe tak bertanda. Mencampurnya dengan pencacah int bertanda menyebabkan peringatan kompilator dan bug yang sulit ditemukan. Gunakan size_t atau std::ssize dari C++20.
Perulangan for Berbasis Rentang
Bentuk paling ringkas ketika Anda tidak memerlukan indeks. Pilih kualifikasi referensi yang tepat.
for (const auto& x : v) std::cout << x << " "; // read only
for (auto& x : v) x *= 2; // modify in placeIterator
Iterator adalah pointer umum. v.begin() menunjuk ke elemen pertama, sedangkan v.end() menunjuk satu posisi setelah elemen terakhir.
for (auto it = v.begin(); it != v.end(); ++it) {
std::cout << *it << " ";
}const_iterator
Gunakan cbegin() dan cend() ketika Anda tidak perlu mengubah elemen — tipe iteratornya adalah const_iterator.
Iterator Terbalik
rbegin() dan rend() melakukan iterasi dari belakang ke depan. Dereferensi menghasilkan elemen yang sama, tetapi dalam urutan terbalik.
for (auto it = v.rbegin(); it != v.rend(); ++it) {
std::cout << *it << " ";
}Aritmetika Iterator
Iterator vector memiliki akses acak: Anda dapat menambah dan mengurangi bilangan bulat serta membandingkannya dengan <.
auto it = v.begin();
it += 3; // skip 3 elements
std::cout << *it;Algoritma Menggunakan Iterator
Algoritma STL menerima pasangan iterator. Teruskan v.begin(), v.end() ke algoritma seperti std::sort atau std::find.
#include <algorithm>
std::sort(v.begin(), v.end());
auto it = std::find(v.begin(), v.end(), 42);Saat Iterator Menjadi Tidak Valid
Menambahkan elemen ke vector dapat menyebabkan realokasi. Semua iterator, pointer, dan referensi ke dalam vector menjadi tidak valid setelah operasi apa pun yang mengubah capacity.
Jebakan: Mengubah Saat Melakukan Iterasi
Jangan pernah memanggil push_back atau erase dalam perulangan for berbasis rentang pada vector yang sama. Buat vector baru atau kumpulkan indeks yang akan diproses setelahnya.
Pemeriksaan Singkat
Bentuk iterasi mana yang membuat iteratornya tidak valid jika push_back memicu realokasi?
Ringkasan
Pilih perulangan for berbasis rentang jika Anda tidak memerlukan indeks, berbasis indeks jika memerlukannya, dan berbasis iterator saat bekerja dengan algoritma. Realokasi membuat iterator tidak valid — jangan pernah menggunakan push_back saat melakukan iterasi.
Pertanyaan yang Sering Diajukan
Apakah pelajaran “Melakukan Iterasi pada Vektor: indeks, range-for, iterator” gratis?
Ya — teks lengkap “Melakukan Iterasi pada Vektor: indeks, range-for, iterator” 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 “Melakukan Iterasi pada Vektor: indeks, range-for, iterator”?
Lakukan iterasi pada vektor dengan akses indeks, range-for, dan iterator eksplisit 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 2 dari 4.
Berapa lama pelajaran “Melakukan Iterasi pada Vektor: indeks, range-for, iterator” 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
- Dasar std::vector: push_back, size, capacity
- Melakukan Iterasi pada Vektor: indeks, range-for, iterator
- Memodifikasi Vektor: insert, erase, clear
- Vector vs std::array vs Array C