Co oznacza taki zapis pętli for?

Co oznacza taki zapis pętli for?
WO
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 14
0

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

Kopiuj
 for(auto d : p)
spartanPAGE
  • Rejestracja: dni
  • Ostatnio: dni
5

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

Kopiuj
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:

Kopiuj
#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;
}

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.