[C++]関数オブジェクト
C++はCの95%を含む.
しかし、その代替品はほとんど存在する.
C++を使用する場合は、パフォーマンスの問題以外にC++を使用する必要があります.
C上の時間測定は
C++は
このように代替本が存在し、
Cの関数ポインタはC++で関数オブジェクトに置き換えられる.
これは,関数ポインタの非インライン化に取って代わるためである.
関数オブジェクトの必要性や使い方は他のブログにもたくさんありますので、検索してみてください.
ここでは、関数オブジェクトをパラメータとして受信する方法について説明します.
パラメータとして関数オブジェクトを受け入れる関数Fooを定義します.
以上のように、関数オブジェクトをパラメータとする方法は、
ネットで探しても見つからなかったので、
しかし、その代替品はほとんど存在する.
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
宣言を見て、結局答えが見つかりました!Reference
この問題について([C++]関数オブジェクト), 我々は、より多くの情報をここで見つけました https://velog.io/@springkim/C-함수-객체テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol