Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Une structure de base vide qui définit les types qui peuvent être hérités par les classes dérivées qui fournit un objet binaire de fonction.
template<class Arg1, class Arg2, class Result>
struct binary_function {
typedef Arg1 first_argument_type;
typedef Arg2 second_argument_type;
typedef Result result_type;
};
Notes
La structure de modèle constitue la base des classes qui définissent une fonction membre du formulaire :
result_type operator()( constfirst_argument_type&,
constsecond_argument_type& ) const
Toutes ces fonctions binaires peuvent faire référence à leur premier type d'argument first_argument_type, à leur deuxième type d'argument second_argument_type, et à leur type de retour comme result_type.
Exemple
// functional_binary_function.cpp
// compile with: /EHsc
#include <vector>
#include <functional>
#include <algorithm>
#include <iostream>
using namespace std;
template <class Type> class average:
binary_function<Type, Type, Type>
{
public:
result_type operator( ) ( first_argument_type a,
second_argument_type b )
{
return (result_type) ( ( a + b ) / 2 );
}
};
int main( )
{
vector <double> v1, v2, v3 ( 6 );
vector <double>::iterator Iter1, Iter2, Iter3;
for ( int i = 1 ; i <= 6 ; i++ )
v1.push_back( 11.0 / i );
for ( int j = 0 ; j <= 5 ; j++ )
v2.push_back( -2.0 * j );
cout << "The vector v1 = ( " ;
for ( Iter1 = v1.begin( ) ; Iter1 != v1.end( ) ; Iter1++ )
cout << *Iter1 << " ";
cout << ")" << endl;
cout << "The vector v2 = ( " ;
for ( Iter2 = v2.begin( ) ; Iter2 != v2.end( ) ; Iter2++ )
cout << *Iter2 << " ";
cout << ")" << endl;
// Finding the element-wise averages of the elements of v1 & v2
transform ( v1.begin( ), v1.end( ), v2.begin( ), v3.begin ( ),
average<double>( ) );
cout << "The element-wise averages are: ( " ;
for ( Iter3 = v3.begin( ) ; Iter3 != v3.end( ) ; Iter3++ )
cout << *Iter3 << " ";
cout << ")" << endl;
}
Configuration requise
en-tête : <functional>
l'espace de noms : DST
Voir aussi
Référence
binary_function Structure Sample