Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Ein vordefiniertes Funktionsobjekt, das den Divisionsvorgang (operator/) auf den Argumenten ausführt.
Syntax
template <class Type = void>
struct divides : public binary_function <Type, Type, Type>
{
Type operator()(const Type& Left, const Type& Right) const;
};
// specialized transparent functor for operator/
template <>
struct divides<void>
{
template <class T, class U>
auto operator()(T&& Left, U&& Right) const
-> decltype(std::forward<T>(Left)*/ std::forward<U>(Right));
};
Parameter
Type, T, U
Ein Typ, der ein operator/-Element unterstützt, das Operanden angegebener oder abgeleiteter Typen akzeptiert.
Nach links
Der linke Operand des Divisionsvorgangs. Die nicht angegebene Vorlage verwendet ein lvalue-Bezugsargument vom Typ "Typ ". Die spezielle Vorlage führt die perfekte Weiterleitung von Lvalue- und Rvalue-Bezugsargumenten vom abgeleiteten Typ T durch.
Right
Der rechte Operand des Divisionsvorgangs. Die nicht angegebene Vorlage verwendet ein lvalue-Bezugsargument vom Typ "Typ ". Die spezielle Vorlage führt die perfekte Weiterleitung von Lvalue- und Rvalue-Bezugsargumenten des abgeleiteten Typs U durch.
Rückgabewert
Das Ergebnis von Left / Right. Die spezialisierte Vorlage vervollkommnet die Weiterleitung des Ergebnisses mit dem von operator/ zurückgegebenen Typs.
Beispiel
// functional_divides.cpp
// compile with: /EHsc
#include <vector>
#include <functional>
#include <algorithm>
#include <iostream>
using namespace std;
int main( )
{
vector <double> v1, v2, v3 (6);
vector <double>::iterator Iter1, Iter2, Iter3;
int i;
for ( i = 0 ; i <= 5 ; i++ )
{
v1.push_back( 7.0 * i );
}
int j;
for ( j = 1 ; j <= 6 ; 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 quotients of the elements of v1 & v2
transform ( v1.begin( ), v1.end( ), v2.begin( ), v3.begin ( ),
divides<double>( ) );
cout << "The element-wise quotients are: ( " ;
for ( Iter3 = v3.begin( ) ; Iter3 != v3.end( ) ; Iter3++ )
cout << *Iter3 << " ";
cout << ")" << endl;
}
The vector v1 = ( 0 7 14 21 28 35 )
The vector v2 = ( 2 4 6 8 10 12 )
The element-wise quotients are: ( 0 1.75 2.33333 2.625 2.8 2.91667 )