CPP 025 – Range Based For Loop

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


Comments

Leave a Reply

Your email address will not be published. Required fields are marked *