Modulus function in C++ STL

Last Updated : 11 Jul, 2025
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: CPP
// C++ program to implement modulus function
#include <algorithm> // transform
#include <functional> // modulus, bind2nd
#include <iostream> // cout
using namespace std;

int main()
{
    // defining the array
    int array[] = { 8, 6, 3, 4, 1 };

    int remainders[5];

    // 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
CPP
// C++ program to implement modulus function
#include <algorithm> // transform
#include <functional> // modulus, bind2nd
#include <iostream> // cout
#include <iterator>
#include <vector>
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
Comment