Computer >> 컴퓨터 >  >> 프로그램 작성 >> C++

C++의 transform()

<시간/>

변환 기능은 C++ STL에 있습니다. 그것을 사용하려면 알고리즘 헤더 파일을 포함해야 합니다. 이것은 모든 요소에 대한 작업을 수행하는 데 사용됩니다. 예를 들어 배열의 각 요소에 대해 제곱을 수행하고 다른 요소에 저장하려면 transform() 함수를 사용할 수 있습니다.

변환 기능은 두 가지 모드에서 작동합니다. 이러한 모드는 -

  • 단항 연산 모드
  • 이진 연산 모드

단항 연산 모드

이 모드에서 함수는 하나의 연산자(또는 함수)만 사용하고 출력으로 변환합니다.

예시

#include <iostream>
#include <algorithm>
using namespace std;
int square(int x) {
   //define square function
   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) {
   //define multiplication function
   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