[C++] 함수 객체
C++은 C 의 95%를 포함하고있다.
그러나 그 대체본이 거의다 존재한다.
C++ 을 사용한다면 성능 문제를 제외하고, C++을 사용하는게 맞다.
C에서의 시간측정은 time.h
의 clock()
함수의 차이로 구할수있고
C++ 은 chrono
라이브러리를 사용하면된다.
이렇듯 대체본이 존재하는데,
C 의 함수포인터를 C++ 에서는 함수객체로 대신한다.
이는 함수포인터의 비 인라인화를 대체하기위함이다.
함수객체의 필요성과 사용법은 다른 블로그에도 많으니 가서 찾고
여기서는 함수객체를 인자로 받는법을 설명한다.
#include<iostream>
#include<algorithm>
using namespace std;
struct FClass{
public:
void operator() ()const{
cout << "Hello, World" << endl;
}
};
template<class _Pr>
void Foo(_Pr fred) {
fred();
}
int main() {
Foo(FClass());
return 0;
}
위는 간단한 함수객체를 만들고,
그 함수객체를 인수로 받는 Foo라는 함수를 정의한다.
위에서 보듯이 함수객체를 인자로 받는법은 template
을 이용해 구현한다.
인터넷에 찾아도 안나오길래 algorithm
의 sort
선언부를 봤더니 답이 나왔다!!
Author And Source
이 문제에 관하여([C++] 함수 객체), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@springkim/C-함수-객체저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)