함수에게 더 구체적인 처리 방식을 지정하기 위해 함수 객체를 전달할 수 있다.
함수 객체는 함수 호출 연산자인 ()을 오버로딩한 객체이다.
struct print{
void operator()(int a)const{
cout<< a << '\n';
}
}
void main()
{
int ari[] = {2,8,5,1,9};
vector<int> vi(&ari[0],&ari[5]);
sort(vi.begin(),vi.end());
for_each(vi.begin(),vi.end(),print()); //#include <algorithm>
}

함수 객체는 함수 포인터에 대한 일반화라고 할 수 있는데, STL이 함수 객체를 사용하는 이유는 속도,
그리고 생성자나 멤버 등을 사용할 수 있는 객체의 특징 때문이다. 템플릿의 인수로도 사용할 수 있으며
셋, 맵 등의 연관 컨테이너들은 내부적인 정렬 방식을 결정하기 위해 함수 객체를 요구한다.
'C++' 카테고리의 다른 글
| [C++] 셋(set) (0) | 2022.01.11 |
|---|---|
| [C++] 반복자 (0) | 2022.01.10 |
| [C++] auto_ptr (0) | 2022.01.09 |
| [C++] 네임 스페이스 (0) | 2022.01.08 |
| [C++] 멤버 포인터 변수, 연산자 (0) | 2022.01.07 |