Open In App

Array product in C++ using STL

In C++, we can quickly find array product using accumulate() and multiplies<>().
 

The initialProduct specifies the initial value to be considered.



For multiplication, the initial value is 1.

Eg: array = [5, 10, 15], 



So, Product = 1 x 5 x 10 x 15 = 750  (Notice that 1 is the initial value here)




// C++ program to find array product
#include <iostream>
#include <numeric>
using namespace std;
 
// User defined function that returns product of
// arr[] using accumulate() library function.
int arrayProduct(int a[], int n)
{
    int initialProduct = 1;
    return accumulate(a, a + n, initialProduct, multiplies<int>());
}
 
int main()
{
    int a[] = { 5, 10, 15 };
    int n = sizeof(a) / sizeof(a[0]);
    cout << arrayProduct(a, n);
    return 0;
}

Output: 
750

 

product of vector 
 




// C++ program to find vector product
#include <iostream>
#include <numeric>
#include <vector>
using namespace std;
 
// User defined function that returns product of
// v using accumulate() library function.
int arrayProduct(vector<int>& v)
{
    int initialProduct = 1;
    return accumulate(v.begin(), v.end(), initialProduct, multiplies<int>());
}
 
int main()
{
    vector<int> v{ 5, 10, 15 };
    cout << arrayProduct(v);
    return 0;
}

Output: 
750

 

We can also use a custom function in accumulate. Refer numeric header in C++ STL | Set 1 (accumulate() and partial_product()) for details.
 


Article Tags :