0Pricing
C++ Academy · Pelajaran

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 indeks
  • for (auto& x : v) berbasis rentang
  • for (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 place

Iterator

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

  1. Dasar std::vector: push_back, size, capacity
  2. Melakukan Iterasi pada Vektor: indeks, range-for, iterator
  3. Memodifikasi Vektor: insert, erase, clear
  4. Vector vs std::array vs Array C
← Kembali ke C++ Academy