算術関手関係数子ロジックファンクタ:いくつかは内蔵されSTL関数オブジェクト
使用法:
これらはファンクタ生成されたオブジェクト、および一般的な使用機能は同一です。
<機能> <include>の組み込み関数オブジェクトはヘッダ#を含める必要が使用します
まず、算術ファンクタ
#include <iostreamの> 使用して 名前空間STD; の#include <機能> // 組み込み関数オブジェクトヘッダファイル // 組み込み算術関数オブジェクトファンクタ // Oネゲート1元ネゲートファンクタファンクタ ボイドTEST01() { Oネゲート < 整数 > N-、 COUT(<< N- 50)<< ENDL; } // PLUS加算器バイナリファンクタ ボイドTEST02() { PLUS < INT > P; COUT << P(10、20)<< ENDL; } int型メイン(){ TEST01()。 TEST02(); システム(「一時停止」)。 リターン 0 ; }
第二に、ファンクタとの関係
#include <iostreamの> 使用して 名前空間STDと、 の#include <ベクトル> の#include <アルゴリズム> の#include <機能> // 組み込み関数オブジェクト関係ファンクタ_ // 大より大きいクラスMyCompare { パブリック: BOOLの演算子()(INT V1 、INT V2) { 戻り V1> V2; } }; ボイドTEST01() { ベクトル < INT > V; v.push_back(10 )。 v.push_back(30 )。 v.push_back(40 )。 v.push_back(20 )。 v.push_back(50 )。 以下のための(ベクトル< int型!;それ= v.end();> ::イテレータそれは= v.begin()それ++ ) { coutの << *それを<< " " ; } COUT << ENDL。 // 降序 // ソート(v.begin()、v.end()、MyCompare()); // 大きい<整数>()内建函数对象 ソート(v.begin()、v.end()、大きい< int型 > ()); 以下のためのベクター(<int型 > ::イテレータそれは)(v.beginを=。!それ= v.end(); それ++ ) { coutの << *それ<< " " ; } COUT << ENDL。 } int型のmain(){ TEST01()。 システム(「一時停止」)。 リターン 0 ; }
3.ロジック数子
書式#include <iostreamの> 使用して 名前空間はstdを、 #include <ベクトル> の#include <アルゴリズム> の#include <機能> // 内建函数对象_逻辑仿函数 // 逻辑非logical_not ボイドTEST01() { ベクトル < BOOL > V。 v.push_back(真の); v.push_back(偽); v.push_back(真の); v.push_back(偽); 以下のための(ベクトル< ブール!;;それ= v.end()それ++> ::イテレータそれは= v.begin() ) COUT {* << << " " ; } COUT << ENDL; //は、容器V2、Vに論理NOT輸送容器を使用し、否定演算を行う ベクトル< BOOL > V2; v2.resize(v.size()) ; (v.begin()、v.end()、v2.begin()、logical_not変換 < BOOL > ())は、 のために(ベクトル< BOOL > :: = v2.begin ITイテレータ();! = V2 ITは.END(); IT ++ ) { COUT << * IT << " " ; } COUT << ENDL; } int型のmain(){ TEST01(); システム(「一時停止」)。 リターン 0 ; }