함수객체
클라이언트가 정의한 동작을 다른 구성 요소에 반영하려 할 때 사용
함수 객체 사용시 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 |