std::multiplies in C++

Function object for performing multiplication. Effectively calls operator* on two instances of type T.

Syntax :

template  struct multiplies : binary_function  
{
    T operator() (const T& x, const T& y) const {return x*y;}
};

Template Parameters :
T - Type of the arguments and return type of the functional call.
    The type shall support the operation (operator*).

Member types :
x : Type of the first argument in member operator()
y : Type of the second argument in member operator()
result_type : Type returned by member operator()

Example :

filter_none

edit
close

play_arrow

link
brightness_4
code

// C++ program to illustrate std::multiplies
// by multiplying the respective elements of 2 arrays
#include <iostream> // std::cout
#include <functional> // std::multiplies
#include <algorithm> // std::transform
  
int main()
{
    // First array
    int first[] = { 1, 2, 3, 4, 5 };
  
    // Second array
    int second[] = { 10, 20, 30, 40, 50 };
  
    // Result array
    int results[5];
  
    // std::transform applies std::multiplies to the whole array
    std::transform(first, first + 5, second, results, std::multiplies<int>());
  
    // Printing the result array
    for (int i = 0; i < 5; i++)
        std::cout << results[i] << " ";
  
    return 0;
}

chevron_right


Output:

10 40 90 160 250 

Another Example :



filter_none

edit
close

play_arrow

link
brightness_4
code

// C++ program to illustrate std::multiplies
// by multiplying all array elements with a number
#include <bits/stdc++.h>
  
int main()
{
    // Array with elements to be multiplying
    int arr[] = { 10, 20, 30 };
  
    // size of array
    int size = sizeof(arr) / sizeof(arr[0]);
  
    // Variable with which array is to be multiplied
    int num = 10;
  
    // Variable to store result
    int result;
  
    // using std::accumulate to perform multiplication on array with num
    // using std::multiplies
    result = std::accumulate(arr, arr + size, num, std::multiplies<int>());
  
    // Printing the result
    std::cout << "The result of 10 * 10 * 20 * 30 is " << result;
  
    return 0;
}

chevron_right


Output:

60000

This article is contributed by Rohit Thapliyal. If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please write comments if you find anything incorrect, or you want to share more information about the topic discussed above.

Attention reader! Don’t stop learning now. Get hold of all the important DSA concepts with the DSA Self Paced Course at a student-friendly price and become industry ready.




My Personal Notes arrow_drop_up
Article Tags :
Practice Tags :


Be the First to upvote.


Please write to us at contribute@geeksforgeeks.org to report any issue with the above content.