C++ Academy · Ders

Vektörler Üzerinde Yineleme: indis, range-for, yineleyiciler

Bir vektör üzerinde indis erişimi, range-for ve açık yineleyicilerle yineleme yapın

2. ders / 413 adım

Vektörler Üzerinde Yineleme: indis, range-for, yineleyiciler, CoddyKit'te ücretsiz bir C++ Academy dersidir. Bu, 4 dersinin 2. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, C++ Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. C++ Academy kursu toplamda 4 dersten oluşur.

Yinelemenin Üç Yolu

Bir vektör üzerinde şu yollarla ilerleyebilirsiniz:

  • İndeks tabanlı: for (size_t i = 0; i < v.size(); ++i)
  • Aralık tabanlı: for (auto& x : v)
  • Yineleyicilerle: for (auto it = v.begin(); it != v.end(); ++it)

İndeks Tabanlı Döngü

C dilinden tanıdıktır. Değerin yanında indekse de ihtiyaç duyduğunuzda kullanışlıdır.

for (size_t i = 0; i < v.size(); ++i) {
    std::cout << i << ": " << v[i] << "\n";
}

size_t ve int

size(), işaretsiz olan size_t döndürür. İşaretli bir int sayacıyla karıştırmak derleyici uyarılarına ve ince hatalara yol açar. size_t veya C++20'deki std::ssize kullanın.

Aralık Tabanlı for

İndekslere ihtiyaç duymadığınızda en temiz biçimdir. Doğru başvuru niteleyicisini seçin.

for (const auto& x : v) std::cout << x << " ";   // read only
for (auto& x : v) x *= 2;                          // modify in place

Yineleyiciler

Yineleyici, genelleştirilmiş bir işaretçidir. v.begin() ilk öğeyi, v.end() ise son öğeden bir sonrasını gösterir.

for (auto it = v.begin(); it != v.end(); ++it) {
    std::cout << *it << " ";
}

const_iterator

Öğeleri değiştirmeniz gerekmiyorsa cbegin() ve cend() kullanın; yineleyici türü const_iterator olur.

Ters Yineleyiciler

rbegin() ve rend(), sondan başa doğru yineleme yapar. Başvuru kaldırıldığında aynı öğeler ters sırayla elde edilir.

for (auto it = v.rbegin(); it != v.rend(); ++it) {
    std::cout << *it << " ";
}

Yineleyici Aritmetiği

Vektör yineleyicileri rastgele erişim destekler: tamsayıları ekleyip çıkarabilir ve < ile karşılaştırabilirsiniz.

auto it = v.begin();
it += 3;          // skip 3 elements
std::cout << *it;

Algoritmalar Yineleyicileri Kullanır

STL algoritmaları yineleyici çiftleri alır. std::sort veya std::find gibi algoritmalara v.begin(), v.end() iletin.

#include <algorithm>
std::sort(v.begin(), v.end());
auto it = std::find(v.begin(), v.end(), 42);

Yineleyiciler Ne Zaman Geçersiz Kılınır?

Bir vektöre ekleme yapmak yeniden bellek ayırmaya neden olabilir. capacity değerini değiştiren herhangi bir işlemden sonra vektöre ait tüm yineleyiciler, işaretçiler ve başvurular geçersiz olur.

Yaygın Hata: Yineleme Sırasında Değiştirme

Aynı vektör üzerinde aralık tabanlı bir for döngüsü çalışırken asla push_back veya erase çağırmayın. Yeni bir vektör oluşturun veya üzerinde işlem yapacağınız indeksleri toplayıp işlemi daha sonra gerçekleştirin.

Hızlı Kontrol

push_back yeniden bellek ayırmayı tetiklerse hangi yineleme biçiminin yineleyicisi geçersiz olur?

Özet

İndekslere ihtiyacınız yoksa aralık tabanlı for döngüsünü, ihtiyacınız varsa indeks tabanlı döngüyü, algoritmalarla çalışırken yineleyici tabanlı döngüyü seçin. Yeniden bellek ayırma yineleyicileri geçersiz kılar; yineleme sırasında asla push_back çağırmayın.

Başlamak ücretsiz

Yapay zeka eğitmeniyle C++ öğren — ücretsiz

Tarayıcında gerçek kod yaz ve çalıştır, 7/24 yapay zeka eğitmeninden anında yardım al; web'de ya da uygulamada kaldığın yerden devam et.

Kurslar
51
Dersler
203

Sıkça Sorulan Sorular

“Vektörler Üzerinde Yineleme: indis, range-for, yineleyiciler” dersi ücretsiz mi?

Evet — “Vektörler Üzerinde Yineleme: indis, range-for, yineleyiciler” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve C++ Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. C++ Academy kursu toplamda 4 dersten oluşur.

“Vektörler Üzerinde Yineleme: indis, range-for, yineleyiciler” dersinde ne öğreneceğim?

Bir vektör üzerinde indis erişimi, range-for ve açık yineleyicilerle yineleme yapın C++ Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.

C++ Academy öğrenmeye başlamak için deneyim gerekli mi?

Önceden deneyim gerekmez. CoddyKit'te C++ Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 2. dersidir.

“Vektörler Üzerinde Yineleme: indis, range-for, yineleyiciler” dersi ne kadar sürer?

Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.

Bu C++ Academy dersinde kod yazıp çalıştırabilir miyim?

Evet. Her C++ Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.

Bu kursun tüm dersleri

  1. std::vector Temelleri: push_back, size, capacity
  2. Vektörler Üzerinde Yineleme: indis, range-for, yineleyiciler
  3. Vektörleri Değiştirme: insert, erase, clear
  4. Vector ve std::array ile C Dizisi Karşılaştırması
← C++ Academy Sayfasına Dön