Skip to content
Related Articles
Modulus function in C++ STL
• Last Updated : 14 Sep, 2018

Modulus function is used to return the value of the modulus between its two arguments. It works same as modulus operator works.

```template  struct modulus : binary_function
{
T operator() (const T& x, const T& y) const
{
return x%y;
}
};
```

Member types:

• Type of first argument
• Type of second argument
• Type of result returned by member operator

Note: We must include library ‘functional’ and ‘algorithm’ to use modulus and transform.

Bewlo programs illustrate the working of modulus function:

 `// C++ program to implement modulus function``#include // transform``#include // modulus, bind2nd``#include // cout``using` `namespace` `std;`` ` `int` `main()``{``    ``// defining the array``    ``int` `array[] = { 8, 6, 3, 4, 1 };`` ` `    ``int` `remainders;`` ` `    ``// transform function that helps to apply``    ``// modulus between the arguments``    ``transform(array, array + 5, remainders,``              ``bind2nd(modulus<``int``>(), 2));`` ` `    ``for` `(``int` `i = 0; i < 5; i++)``        ``// printing the results while checking``        ``// whether no. is even or odd``        ``cout << array[i] << ``" is a "``             ``<< (remainders[i] == 0 ? ``"even"` `: ``"odd"``)``             ``<< endl;`` ` `    ``return` `0;``}`
Output:
```8 is a even
6 is a even
3 is a odd
4 is a even
1 is a odd
```
 `// C++ program to implement modulus function``#include // transform``#include // modulus, bind2nd``#include // cout``#include ``#include ``using` `namespace` `std;`` ` `int` `main()``{`` ` `    ``// Create a std::vector with elements``    ``// {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}``    ``vector<``int``> v;``    ``for` `(``int` `i = 0; i < 10; ++i)``        ``v.push_back(i);`` ` `    ``// Perform a modulus of two on every element``    ``transform(v.begin(), v.end(), v.begin(),``              ``bind2nd(modulus<``int``>(), 2));`` ` `    ``// Display the vector``    ``copy(v.begin(), v.end(),``         ``ostream_iterator<``int``>(cout, ``" "``));``    ``cout << endl;`` ` `    ``return` `0;``}`
Output:
```0 1 0 1 0 1 0 1 0 1
```
Want to learn from the best curated videos and practice problems, check out the C++ Foundation Course for Basic to Advanced C++ and C++ STL Course for foundation plus STL.  To complete your preparation from learning a language to DS Algo and many more,  please refer Complete Interview Preparation Course.

My Personal Notes arrow_drop_up