Предыдущий пост -
Следующий пост -

for_each.

Рубрика: Алгоритмы, Дата: 4 July, 2013, Автор:
Tags: ,

Ну что ж господа начнем описывать алгоритмы STL их всего 60 и сейчас мы опишем такой алгоритм как for_each. Что это за алгоритм? Это как оказалось не модифицирующий данные алгоритм. Принимает итераторы на начало и на конец, и третьим параметром функцию функция походу не предикат, а обычную, которая будет менять значения.

Сразу примерчик, так как все очень просто оказалось простой такой алгоритм.

#include <iostream>
using std::cout;
using std::endl;
#include <vector>
using std::vector;
#include <algorithm>
using std::for_each;

//функция которую передаем
void myfun(int i){cout <<i<<' ';}
//функциональный объект
struct myO
{
	void operator()(int i){i=i+10;cout <<i<<' ';}
}name;//нужно обязательно как тип обозначать или через typedef видимо

int main()
{
	vector<int> v;
	v.push_back(10);
	v.push_back(20);
	v.push_back(30);

	cout <<"Vuvod cherez fynkciyu"<<endl;
	for_each(v.begin(),v.end(),myfun);
	cout <<endl;

	cout <<"Vuvod cherez fynkcion ob6ekt"<<endl;
	for_each(v.begin(),v.end(),name);
	cout <<endl;

	//покажем что данные не модифицируются
	cout <<"Vuvod cherez fynkciyu"<<endl;
	for_each(v.begin(),v.end(),myfun);
	cout <<endl;

	return 0;
}

Щас перейдем к следующему алгоритму, я так по чуть чуть попытаюсь каждый алгоритм описать.

[youtube]http://www.youtube.com/watch?v=2wz2PGR5w_s[/youtube]

rss