STL - algorithm - for_each

2017. 1. 4. 23:13IT-개발/C및C++

반응형

for_each는 순차적으로 컨테이너들에 담긴 데이터를 함수의 파라미터로 넘겨서 함수를 실행시키는 알고리즘이다


#include <algorithm>

#include <vector>

#include <iostream>

using namespace std;


struct User

{

int UID;

int PlayTime;

};


struct UpdatePlayTime

{

void operator() ( User& user )

{

user.PlayTime += PlayTime;

}

int PlayTime;

};


int main()

{

vector< User > Users;

User user1; user1.UID = 1; user1.PlayTime = 40000;

User user2; user2.UID = 2; user2.PlayTime = 0;

User user3; user3.UID = 3; user3.PlayTime = 25000;

Users.push_back( user1 );

Users.push_back( user2 );

Users.push_back( user3 );


// 현재 플레이 시간

vector< User >::iterator IterUser;

for( IterUser = Users.begin(); IterUser != Users.end(); ++IterUser )

{

cout << "UID : " << cout << IterUser->UID << "의 총 플레이 시간: " <<

IterUser->PlayTime << endl;

}

cout << endl;

UpdatePlayTime updatePlayTime;

updatePlayTime.PlayTime = 200;


// 두 번째 유저부터 갱신

for_each( Users.begin() + 1, Users.end(), updatePlayTime );

for( IterUser = Users.begin(); IterUser != Users.end(); ++IterUser )

{

cout << "UID : " << cout << IterUser->UID << "의 총 플레이 시간: " <<

IterUser->PlayTime << endl;

}


return 0;


}


변경 불가 시퀀스 알고리즘에는 위에 설명한 find, find_if, for_each 이외에

count, search, equal, adjacent_find, equal 등이 있다.





'IT-개발 > C및C++' 카테고리의 다른 글

format 숫자 출력하기  (0) 2017.05.11
STL - algorithm - generate  (0) 2017.01.04
STL - algorithm - find  (0) 2017.01.04
STL - algorithm  (0) 2017.01.04
STL - Set - sample(2)  (0) 2017.01.04