[STL] 함수객체

함수객체

클라이언트가 정의한 동작을 다른 구성 요소에 반영하려 할 때 사용
함수 객체 사용시 STL 구성 요소를 더욱 유연하게 사용 할 수 있음.

 

함수 객체를 적용한 Sort 알고리즘

#include <iostream>
#include <vector>
#include <list>
#include <algorithm>

using namespace std;

int main() {

	vector<int> v;

	v.push_back(50);
	v.push_back(40);
	v.push_back(30);
	v.push_back(20);
	v.push_back(10);

	sort(v.begin(), v.end(), less<int>());
	for (vector<int>::iterator iter = v.begin(); iter != v.end(); iter++) {
		cout << *iter << endl;
	}
	cout << endl;

	sort(v.begin(), v.end(), greater<int>());
	for (vector<int>::iterator iter = v.begin(); iter != v.end(); iter++) {
		cout << *iter << endl;
	}
	
}

 

함수 객체를 매개변수로 받는 Sort 함수

 

기본 알고리즘의 Sort와 다르게 템플릿 클래스 _Pr을 세번째 매개변수로 받으면서 정렬 시킵니다.

 

코드에서 less<int>()로 정의되어 있지만 기본적으로 함수객체 less로 동작하며 아래 sort와 같이 함수객체 greater<int>로 할경우 내림차순으로 정렬됩니다.

 

결과

 

'C++ > STL' 카테고리의 다른 글

[STL] 할당기  (0) 2025.03.03
[STL] 어댑터2  (0) 2025.03.03
[STL] 어댑터  (0) 2025.03.03
[STL] 알고리즘 Algorithm  (0) 2025.03.03
[STL] 반복자 Iterator  (0) 2025.03.03