반복자에 의해 지정된 요소 집합에 대해 수행되는 알고리즘
매우 다양한 알고리즘이 구현되어 있음
알고리즘을 사용하기 위해 함수를 인자로써 제공해야 하는 경우가 존재
함수를 인자로써 제공하는 방법
#include <iostream>
#include <vector>
#include <set>
#include <algorithm>
int main() {
std::vector<int> vec{ 1,2,3,7,4,9,10 };
std::set<char> mySet{ 'A','B','C','D' };
auto location = std::find(vec.begin(), vec.end(), 4);//iterator를 반환함
if (location == vec.end())//찾지 못 함
{
std::cout << "Can't find" << std::endl;
}
else
{
std::cout << "found!" << std::endl;
}
std::cout << *location << std::endl;
}
//
find는 return 값이 iterator이다. 포인터 연산 가능하다.
#include <iostream>
#include <vector>
class Player
{
private:
std::string name;
int hp;
int xp;
public:
//overloading
};
int main()
{
std::vector<Player> team{};
Player p{ "hero",100,12 };
auto loc = find(team.begin(), team.end(), p);
if (loc != team.end())
{
std::cout << *loc << std::endl;
}
return 0;
}
for_each 알고리즘은 컨테이너 내 각 요소를 인자로 함수를 호출
컨테이너의 각 요소를 제곱하는 경우의 예제
함수를 인자로 넘기는 방법