minus (Struct)

 

Para obtener la documentación más reciente de Visual Studio 2017 RC, consulte Documentación de Visual Studio 2017 RC.

Objeto de función predefinido que realiza la operación de resta (operator- binario) sobre sus argumentos.

template <class Type = void>
struct minus : public binary_function <Type, Type, Type>  
{
    Type operator()(
    const Type& Left,
    const Type& Right) const;

 };

// specialized transparent functor for operator-
template <>
struct minus<void>  
{
template <class T, class U>
auto operator()(T&& Left, U&& Right) const
 ->  
decltype(std::forward<T>(Left)
 - std::forward<U>(Right));

 };

Parámetros

Type, T, U
Tipo que admite un operator- binario que toma operandos de los tipos especificados o deducidos.

Left
Operando izquierdo de la operación. La plantilla no especializada toma un argumento de referencia de valor L de tipo Type. La plantilla especializada realiza el reenvío directo de los argumentos de referencia de valor L y valor R del tipo deducido T.

Right
Operando derecho de la operación. La plantilla no especializada toma un argumento de referencia de valor L de tipo Type. La plantilla especializada realiza el reenvío directo de los argumentos de referencia de valor L y valor R del tipo deducido U.

El resultado de Left``-``Right. La plantilla especializada realiza el reenvío directo del resultado, que tiene el tipo devuelto por operator-.

// functional_minus.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 = 0 ; i <= 5 ; i++ )  
   {  
      v1.push_back( 4 * i + 1);  
   }  
  
   int j;  
   for ( j = 0 ; j <= 5 ; j++ )  
   {  
      v2.push_back( 3 * j - 1);  
   }  
  
   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 diference of the elements of v1 & v2  
   transform ( v1.begin( ),  v1.end( ), v2.begin( ), v3.begin ( ),   
      minus<int>( ) );  
  
   cout << "The element-wise differences between v1 and v2 are: ( " ;  
   for ( Iter3 = v3.begin( ) ; Iter3 != v3.end( ) ; Iter3++ )  
      cout << *Iter3 << " ";  
   cout << ")" << endl;  
}  
\* Output:   
The vector v1 = ( 1 5 9 13 17 21 )  
The vector v2 = ( -1 2 5 8 11 14 )  
The element-wise differences between v1 and v2 are: ( 2 3 4 5 6 7 )  
*\  

Encabezado:<>>

Espacio de nombres: std

Seguridad para subprocesos en la biblioteca estándar de C++
Biblioteca de plantillas estándar

Mostrar: