Vektörler Üzerinde Yineleme: indis, range-for, yineleyiciler
Bir vektör üzerinde indis erişimi, range-for ve açık yineleyicilerle yineleme yapın
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 placeYineleyiciler
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.
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
- std::vector Temelleri: push_back, size, capacity
- Vektörler Üzerinde Yineleme: indis, range-for, yineleyiciler
- Vektörleri Değiştirme: insert, erase, clear
- Vector ve std::array ile C Dizisi Karşılaştırması