negate, struct
Un objet de fonction prédéfinie qui exécute l'opération arithmétique de négation ( operator-unaire) sur son argument.
template<class Type = void>
struct negate : public unary_function<Type, Type>
{
Type operator()(
const Type& Left
) const;
};
// specialized transparent functor for unary operator-
template<>
struct negate<void>
{
template<class Type>
auto operator()(Type&& Left) const
-> decltype(-std::forward<Type>(Left));
};
Paramètres
Type
Tout type qui prend en charge operator- qui prend un opérande de type spécifié ou déduit.Left
L'opérande devant être rendue négative. Le modèle spécialisé perfectionne le transfert des arguments de référence lvalue et rvalue de type déduit Type.
Valeur de retour
Le résultat de -Left. le modèle spécialisé perfectionne le transfert du résultat, qui a le type retourné par operator-unaire.
Exemple
// functional_negate.cpp
// compile with: /EHsc
#include <vector>
#include <functional>
#include <algorithm>
#include <iostream>
using namespace std;
int main( )
{
vector <int> v1, v2 ( 8 );
vector <int>::iterator Iter1, Iter2;
int i;
for ( i = -2 ; i <= 5 ; i++ )
{
v1.push_back( 5 * i );
}
cout << "The vector v1 = ( " ;
for ( Iter1 = v1.begin( ) ; Iter1 != v1.end( ) ; Iter1++ )
cout << *Iter1 << " ";
cout << ")" << endl;
// Finding the element-wise negatives of the vector v1
transform ( v1.begin( ), v1.end( ), v2.begin( ), negate<int>( ) );
cout << "The negated elements of the vector = ( " ;
for ( Iter2 = v2.begin( ) ; Iter2 != v2.end( ) ; Iter2++ )
cout << *Iter2 << " ";
cout << ")" << endl;
}
Configuration requise
En-tête : <functional>
Espace de noms : std