multiplies (struct)
Objet de fonction prédéfini qui effectue l’opération de multiplication ( operator*
binaire) sur ses arguments.
Syntaxe
template <class Type = void>
struct multiplies : public binary_function <Type, Type, Type>
{
Type operator()(const Type& Left, const Type& Right) const;
};
// specialized transparent functor for operator*
template <>
struct multiplies<void>
{
template <class T, class U>
auto operator()(T&& Left, U&& Right) const
-> decltype(std::forward<T>(Left) * std::forward<U>(Right));
};
Paramètres
Type, T, U
Tout type qui prend en charge un operator*
binaire qui accepte des opérandes des types spécifiés ou déduits.
Left
Opérande gauche de l’opération de multiplication. Le modèle non spécifié prend un argument de référence lvalue de type Type. Le modèle spécialisé effectue un transfert parfait des arguments de référence lvalue et rvalue du type T déduit.
Right
Opérande droit de l’opération de multiplication. Le modèle non spécifié prend un argument de référence lvalue de type Type. Le modèle spécialisé effectue un transfert parfait des arguments de référence lvalue et rvalue du type déduit U.
Valeur de retour
Résultat de Left * Right
. Le modèle spécialisé effectue un transfert parfait du résultat, qui a le type retourné par operator*
.
Exemple
// functional_multiplies.cpp
// compile with: /EHsc
#include <vector>
#include <functional>
#include <algorithm>
#include <iostream>
using namespace std;
int main( )
{
vector <int> v1, v2, v3 ( 6 );
vector <int>::iterator Iter1, Iter2, Iter3;
int i;
for ( i = 1 ; i <= 6 ; i++ )
{
v1.push_back( 2 * i );
}
int j;
for ( j = 1 ; j <= 6 ; j++ )
{
v2.push_back( 3 * 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 products of the elements of v1 & v2
transform ( v1.begin( ), v1.end( ), v2.begin( ), v3.begin ( ),
multiplies<int>( ) );
cout << "The element-wise products of vectors V1 & v2\n are: ( " ;
for ( Iter3 = v3.begin( ) ; Iter3 != v3.end( ) ; Iter3++ )
cout << *Iter3 << " ";
cout << ")" << endl;
}
The vector v1 = ( 2 4 6 8 10 12 )
The vector v2 = ( 3 6 9 12 15 18 )
The element-wise products of vectors V1 & v2
are: ( 6 24 54 96 150 216 )
Commentaires
https://aka.ms/ContentUserFeedback.
Bientôt disponible : Tout au long de 2024, nous allons supprimer progressivement GitHub Issues comme mécanisme de commentaires pour le contenu et le remplacer par un nouveau système de commentaires. Pour plus d’informations, consultezEnvoyer et afficher des commentaires pour