[STL] algorithm for_each 예제
/*
for_each는 algorithm 함수로서 인자로 함수나 클래스를 사용할 수 있다.
*/
#include <algorithm>
#include <vector>
#include <iostream>
using namespace std;
class Summation
{
private:
int sum;
public:
Summation() : sum (0) {}
void operator() (int i)
{
sum += i;
}
operator int ()
{
return static_cast <int> (sum);
}
};
void display(int i)
{
cout << i << endl;
}
int main()
{
// system 함수에 도스 명령어 실행
const char* szArr[] = {"dir","cls","ver"};
int iSize = sizeof(szArr)/sizeof(char*);
for_each(szArr, szArr+iSize, system);
// display 함수 실행
vector<int> vec;
for(int i=0;i<10;i++)
{
vec.push_back(i);
}
for_each(vec.begin(),vec.end(),display);
// Summation 클래스 사용
int iRet = for_each(vec.begin(),vec.end(),Summation());
cout << "Summation = " << iRet << endl;
return 0;
}