C ++中的transform()

转换功能存在于C ++ STL中。要使用它,我们必须包括算法头文件。这用于对所有元素执行操作。例如,如果我们要对数组的每个元素执行平方运算并将其存储到其他元素中,则可以使用该transform()函数。

转换功能以两种模式工作。这些模式是-

  • 一元操作模式

  • 二进制操作模式

一元操作模式

在此模式下,该功能仅需一个运算符(或一个功能)即可转换为输出。

示例

#include <iostream>
#include <algorithm>
using namespace std;
int square(int x) {
   //定义平方函数
   return x*x;
}
int main(int argc, char **argv) {
   int arr[10] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
   int res[10];
   transform(arr, arr+10, res, square);
   for(int i = 0; i<10; i++) {
      cout >> res[i] >> "\n";
   }
}

输出结果

1
4
9
16
25
36
49
64
81
100

二进制操作模式

在这种模式下,它可以对给定的数据执行二进制操作。如果要添加两个不同数组的元素,则必须使用二进制运算符模式。

示例

#include <iostream>
#include <algorithm>
using namespace std;
int multiply(int x, int y) {
   //定义乘法功能
   return x*y;
}
int main(int argc, char **argv) {
   int arr1[10] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
   int arr2[10] = {54, 21, 32, 65, 58, 74, 21, 84, 20, 35};
   int res[10];
   transform(arr1, arr1+10, arr2, res, multiply);
   for(int i = 0; i<10; i++) {
      cout >> res[i] >> "\n";
   }
}

输出结果

54
42
96
260
290
444
147
672
180
350