Kapsayıcılarla Aralık Tabanlı for Döngüsü
C++11'in aralık tabanlı for söz dizimiyle kapsayıcılar üzerinde temiz bir şekilde yineleme yapın
Kapsayıcılarla Aralık Tabanlı for Döngüsü, CoddyKit'te ücretsiz bir C++ Academy dersidir. Bu, 4 dersinin 3. 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.
Modern Döngü
C++11, aralık tabanlı for döngüsünü kullanıma sundu — açık indisler veya yineleyiciler olmadan herhangi bir kapsayıcı üzerinde yineleme yapın. Daha temizdir ve hata yapmayı zorlaştırır.
std::vector<int> v = {1, 2, 3, 4, 5};
for (int x : v) {
std::cout << x << " ";
}Değerle
Yukarıdaki örnek her öğeyi x'e kopyalar. int gibi ucuz türler için uygundur; büyük nesneler için maliyetlidir.
const Başvuruyla
Önemsiz olmayan türlerde, kopyaları önlemek ve öğeleri değiştirmeyeceğinizi belirtmek için const auto& kullanın.
std::vector<std::string> names = {"Ada", "Bob"};
for (const auto& name : names) {
std::cout << name << "\n";
}Değişiklik İçin Başvuruyla
Öğeleri yerinde değiştirmek için normal bir başvuru kullanın.
std::vector<int> v = {1, 2, 3};
for (auto& x : v) {
x *= 10;
}
// v is now {10, 20, 30}Tür Çıkarımı İçin auto
Öğe türünü derleyicinin çıkarmasına izin verin. Dizgeler, yapı vektörleri ve haritalarla çalışırken bu, çok fazla yazmayı önler.
Harita Üzerinde Yineleme
Her öğe bir std::pair<const Key, Value>'dır. Daha temiz kod için yapılandırılmış bağlamaları (C++17) kullanın.
std::map<std::string, int> ages = {{"Ada",30},{"Bob",24}};
for (const auto& [name, age] : ages) {
std::cout << name << ": " << age << "\n";
}Dizgeler Üzerinde Yineleme
Bir std::string, char kapsayıcısıdır.
std::string s = "hello";
for (char c : s) {
std::cout << c << " ";
}Başlatıcı Listesi Döngüleri
Süslü parantezlerle çevrelenmiş bir listenin üzerinde doğrudan aralık döngüsü kullanabilirsiniz.
for (int n : {1, 2, 4, 8, 16}) {
std::cout << n << " ";
}Ters Aralık Tabanlı Döngü
Standart aralık tabanlı for döngüsü ileri gider. Tersine yineleme için std::ranges::reverse_view (C++20) veya elle ters yineleyiciler kullanın.
#include <ranges>
for (auto x : v | std::views::reverse) {
std::cout << x;
}Sınırlamalar
Aralık döngüsü şunları yapamaz:
- Ayrı bir sayaç olmadan geçerli indisi bilmek
- Öğeleri atlamak veya yineleme sırasında kapsayıcıyı değiştirmek
- İki kapsayıcı üzerinde paralel yineleme yapmak (normal bir for veya zip kullanın)
Aralık-For'da Özel Türler
Kendi sınıfınızın aralık-for ile çalışmasını sağlamak için yineleyiciler döndüren begin() ve end() üyeleri veya serbest işlevler sağlayın.
Hızlı Kontrol
Aralık tabanlı for döngüsünün hangi biçimi kapsayıcıdaki öğeleri değiştirir?
Özet
Aralık tabanlı for, yineleme yapmanın en temiz yoludur. Varsayılan olarak const auto&, değiştirmek için auto& kullanın; çiftleri ve demetleri parçalamak için yapılandırılmış bağlamalardan yararlanın.
Sıkça Sorulan Sorular
“Kapsayıcılarla Aralık Tabanlı for Döngüsü” dersi ücretsiz mi?
Evet — “Kapsayıcılarla Aralık Tabanlı for Döngüsü” 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.
“Kapsayıcılarla Aralık Tabanlı for Döngüsü” dersinde ne öğreneceğim?
C++11'in aralık tabanlı for söz dizimiyle kapsayıcılar üzerinde temiz bir şekilde 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 3. dersidir.
“Kapsayıcılarla Aralık Tabanlı for Döngüsü” 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
- Dallanma: if-else, üçlü ifade, switch-case
- Döngü Kalıpları: for, while, do-while
- Kapsayıcılarla Aralık Tabanlı for Döngüsü
- Erken Dönüşler, break, continue ve goto