std::plus in c++
It is a Function object for performing addition. The object class whose call returns the result of adding its two arguments (as returned by operator + ).
Syntax :
template struct plus : 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()
// C++ program to illustrate std::plus // by adding the respective elements of 2 arrays #include <iostream> // std::cout #include <functional> // std::plus #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::plus to the whole array std::transform(first, first + 5, second, results, std::plus< int >()); // Printing the result array for ( int i = 0; i < 5; i++) std::cout << results[i] << " " ; return 0; } |
Output:
11 22 33 44 55
Another example:
// C++ program to illustrate std::plus // by adding all array elements with a number #include <bits/stdc++.h> int main() { // Array with elements to be added int arr[] = { 10, 20, 30 }; // size of array int size = sizeof (arr) / sizeof (arr[0]); // Variable with which array is to be added int num = 100; // Variable to store result int result; // using std::accumulate to perform addition on array with num // using std::plus result = std::accumulate(arr, arr + size, num, std::plus< int >()); // Printing the result std::cout << "The result of 100 + 10 + 20 + 30 is " << result; return 0; } |
Output:
The result of 100 + 10 + 20 + 30 is 160