For loop’unun daha sadeleştirilmiş hali. std::vector gibi container’ların tüm elemanları üzerinden tek tek geçer. Daha anlaşılır bir örnek:
#include <iostream>
#include <vector>
using namespace std;
int main() {
vector<int> vec{423,412,523,5123,32,12,36,79};
// normal for loop
for (int i = 0; i < vec.size(); i++)
cout << vec[i] << ", ";
cout << endl;
// range based for loop
for (int i : vec)
cout << i << ", ";
cout << endl;
}
// 423, 412, 523, 5123, 32, 12, 36, 79,
// 423, 412, 523, 5123, 32, 12, 36, 79,
Genelde auto keyword’ü ile kullanıyoruz. Bu keyword değişkenin tipinin otamatik olarak kullanılmasına sağlıyor.
for (auto i : vec)
cout << i << ", ";
Çıktı almak için çok güzel olsa da bu şekliyde vector’deki elemanları değiştiremeyiz. Çünkü aslında ekrana basılanlar, vector’deki elemanların birer kopyası. Peki bu durumda ne yapabiliriz, referans kulllanabiliriz
for (auto& i : vec)
i++;
İşte hayat bu kadar kolay
Leave a Reply