CodeBlanks Logo Icon CodeBlanks

vector döngüsü

Range-based for ile vector üzerinde gezinmeyi öğrenirsin.

Range-based for ile döngü

Range-based for döngüsü, bir vektörün tüm elemanlarını sırayla dolaşmanın kısa yoludur. Yazımı: for (int x : nums) { std::cout << x; }. Burada x her döngüde vektörün bir elemanını alır; dizinle uğraşmazsın.

Bu yapı, elemanları yalnızca okumak ya da yazdırmak istediğinde idealdir. Dizin gerekmiyorsa klasik for yerine range-based for tercih edilir; daha az hata yaparsın. Elemanı değiştirmek için referans gerekir; ona ileriki seviyede değineceğiz.

Döngüde değişiklik

Range-based for'da elemanı bir kopya alırsın; x üzerinde yaptığın değişiklik vektöre yansımaz. for (int x : nums) { x = 0; } yalnızca yerel kopyayı sıfırlar, nums'ı değiştirmez.

Vektörün kendisini değiştirmek için referans kullanmak gerekir; bunu referanslar konusunda göreceksin. Şimdilik range-based for'u yalnızca okuma ve yazdırma için kullan; elemanları değiştireceğin zaman klasik for ya da referans gerekecek.

Uygulama Range-based for ile yazdır

std::vector<int> nums = {2, 4, 6, 8}; tanımla. Range-based for ile tüm elemanları bitişik olarak tek satırda yazdır.

Başlangıç kodu

main.cpp
#include <iostream>
#include <vector>

int main() {
    std::vector<int> nums = {2, 4, 6, 8};
    // range-based for ile yazdır
    return 0;
}

Örnek çözüm

main.cpp
#include <iostream>
#include <vector>

int main() {
    std::vector<int> nums = {2, 4, 6, 8};
    for (int x : nums) {
        std::cout << x;
    }
    std::cout << std::endl;
    return 0;
}

Beklenen çıktı

2468

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 Döngü biçimlerini eşle

Kavram Anlamı
for (int x : nums) Range-based for
for (int i = 0; ...) Klasik for
nums.size() Döngü sınırı
std::cout << x Elemanı yazdır

2 for (int x : nums) { std::cout << x; } ne yazdırır? (nums = {1, 2, 3})

main.cpp
std::vector<int> nums = {1, 2, 3};
for (int x : nums) { std::cout << x; }
  • 1 2 3
  • 3 2 1
  • 6
  • 123 Doğru cevap

Açıklama: her eleman bitişik yazılır: 123.

3 Range-based for'u tamamla

Soru
for (int x ____ nums) { std::cout << x; }
Cevap
for (int x : nums) { std::cout << x; }

Açıklama: : ayracı vektörü dolaşır.

Başlangıç bölümündeki tüm dersler