본문 바로가기

C++

[C++] 함수 객체

함수에게 더 구체적인 처리 방식을 지정하기 위해 함수 객체를 전달할 수 있다.

함수 객체는 함수 호출 연산자인 ()을 오버로딩한 객체이다.

 

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