用于执行除法的函数对象。在两个T类型的实例上有效地调用operator /。
用法:
template struct divides: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::divides
// by dividing the respective elements of 2 arrays
#include <iostream> // std::cout
#include <functional> // std::divides
#include <algorithm> // std::transform
int main()
{
// First array
int first[] = { 10, 20, 30, 40, 50 };
// Second array
int second[] = { 1, 2, 3, 4, 5 };
// Result array
int results[5];
// std::transform applies std::divides to the whole array
std::transform(first, first + 5, second, results, std::divides<int>());
// Printing the result array
for (int i = 0; i < 5; i++)
std::cout << results[i] << " ";
return 0;
}
输出:
10 10 10 10 10
另一个例子:
// C++ program to illustrate std::divides
// by dividing all array elements with a number
#include <bits/stdc++.h>
int main()
{
// Array with elements to be divided
int arr[] = { 10, 10 };
// size of array
int size = sizeof(arr) / sizeof(arr[0]);
// Variable with which array is to be divided
int num = 100;
// Variable to store result
int result;
// using std::accumulate to perform division on array with num
// using std::divides
result = std::accumulate(arr, arr + size, num, std::divides<int>());
// Printing the result
std::cout << "The result of (100 / 10) / 10 is " << result;
return 0;
}
输出:
The result of (100 / 10) / 10 is 1
相关用法
注:本文由纯净天空筛选整理自 std::divides in C++。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。