📜  C++ STL中的模量函数

📅  最后修改于: 2021-05-30 17:39:41             🧑  作者: Mango

模量函数用于返回其两个参数之间的模量值。它的作用与模运算符的作用相同。

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

会员类型:

  • 第一个参数的类型
  • 第二个参数的类型
  • 成员运算符返回的结果类型

注意:我们必须包括库“ functional”和“ algorithm”才能使用模数和变换。

Bewlo程序说明了模函数的工作原理:

// 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[5];
  
    // transform function that helps to apply
    // modulus between the arguments
    transform(array, array + 5, remainders,
              bind2nd(modulus(), 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;
}
输出:
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 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(), 2));
  
    // Display the vector
    copy(v.begin(), v.end(),
         ostream_iterator(cout, " "));
    cout << endl;
  
    return 0;
}
输出:
0 1 0 1 0 1 0 1 0 1
要从最佳影片策划和实践问题去学习,检查了C++基础课程为基础,以先进的C++和C++ STL课程基础加上STL。要完成从学习语言到DS Algo等的更多准备工作,请参阅“完整面试准备课程”