Co oznacza taki zapis pętli for?

0

Co oznacza taki zapis pętli for?
Jak długo bedzie się wykonywała?

 for(auto d : p)
5

Pętla wykona się dla każdego elementu.

for(auto dit = p.begin(); dit != p.end(); ++dit){
    auto d = *dit;
   //od tego momentu wszystko wygląda tak samo jak w przypadku ""for(auto d : p){}""
}

Pętla ta nosi nazwę for_each

Demonstracja:

#include <iostream>
#include <algorithm>
#include <vector>
using namespace std;

int main(){
	vector<int> v = {1, 2, 3};
	for(auto it = v.begin(); it != v.end(); ++it)
		cout << *it << " ";
	cout << endl;
	
	for(auto element : v)
		cout << element << " ";
	cout << endl;
	
	for_each(v.begin(), v.end(), [](int element){
		cout << element << " ";
	});
	cout << endl;
	return 0;
}

1 użytkowników online, w tym zalogowanych: 0, gości: 1