Range-based for
- C++ kursu
- Başlangıç
- Ders 45/116
- 5 dk
Range-based for ile koleksiyonların üzerinde gezinmeyi öğrenirsin.
Range-based for
Bir vektörün veya dizinin tüm elemanlarını sırayla gezmek için range-based for döngüsü kullanılır. Yazımı for (int x : nums) { ... } biçimindedir; her yinelemede x, koleksiyonun bir sonraki elemanını alır.
Bu yapıda başlangıç, koşul ve artış yazmazsın; C++ bunları otomatik yönetir. Okunabilirliği artırdığı için dizin gerekmediği durumlarda klasik for'a tercih edilir. Döngü değişkenini const int& yaparak gereksiz kopya da önlenir.
Range-based for avantajı
Range-based for'un en büyük avantajı dizin hatalarını ortadan kaldırmasıdır. nums[i] yazarken i'yi yanlış aralıkta verebilirsin; range-based for'da ise her eleman otomatik gelir.
Bu yapı yalnızca koleksiyonu baştan sona gezmek istediğinde uygundur. İndise ihtiyaç duyduğun, atlamalar yaptığın veya koleksiyonu değiştirdiğin durumlarda klasik for daha uygun olur. Her aracı doğru yerde kullanmak, kodun sağlamlığını artırır.
Uygulama Vektör elemanlarını yazdır
nums vektörüne {1, 2, 3} değeri verilmiş. for (int x : nums) ile her elemanı std::cout << x; ile tek satırda yazdır. Çıktı 123 olmalı.
Başlangıç kodu
#include <iostream>
#include <vector>
int main() {
std::vector<int> nums = {1, 2, 3};
// range-based for ile yazdır
return 0;
}Örnek çözüm
#include <iostream>
#include <vector>
int main() {
std::vector<int> nums = {1, 2, 3};
for (int x : nums) {
std::cout << x;
}
std::cout << std::endl;
return 0;
}Beklenen çıktı
123
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 Hangisi range-based for yazımıdır?
// koleksiyonlu döngü- for (i = 0; i < n; i++)
- for (int x : nums) Doğru cevap
- for (x in nums)
- for (int x; nums)
Açıklama: for (int x : nums) range-based for yazımıdır.
2 Range-based for gövdesini yaz
std::vector<int> nums = {1, 2, 3};
for (int x : nums) {
std::cout << ____;
}
std::vector<int> nums = {1, 2, 3};
for (int x : nums) {
std::cout << x;
}
Açıklama: x döngü değişkenidir ve her yinelemede elemanı tutar.
3 Range-based for parçalarını eşle
| Kavram | Anlamı |
|---|---|
int x |
Döngü değişkeni |
nums |
Koleksiyon |
: |
İçinde anlamı |
{ ... } |
Gövde |