C ++
 Computer >> コンピューター >  >> プログラミング >> C ++

C ++のtransform()


変換関数はC++STLにあります。これを使用するには、アルゴリズムヘッダーファイルをインクルードする必要があります。これは、すべての要素に対して操作を実行するために使用されます。たとえば、配列の各要素の2乗を実行し、それを他の要素に格納する場合は、transform()関数を使用できます。

変換関数は2つのモードで機能します。これらのモードは-

です
  • 単項演算モード
  • 二項演算モード

単項演算モード

このモードでは、関数は1つの演算子(または関数)のみを取り、出力に変換します。

#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

二項演算モード

このモードでは、指定されたデータに対して二項演算を実行できます。 2つの異なる配列の要素を追加する場合は、二項演算子モードを使用する必要があります。

#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

  1. 2D配列をC++関数に渡す

    配列は引数として関数に渡すことができます。このプログラムでは、2次元配列の要素を関数に渡して表示するように実行します。 アルゴリズム Begin The 2D array n[][] passed to the function show(). Call function show() function, the array n (n) is traversed using a nested for loop. End サンプルコード #include <iostream> using namespace std; void show(int n[4][3]); int

  2. 配列をC++関数に渡す

    C ++では、配列全体を引数として関数に渡すことはできません。ただし、インデックスなしで配列の名前を指定することにより、配列へのポインタを渡すことができます。 1次元配列を関数の引数として渡したい場合は、次の3つの方法のいずれかで関数の仮パラメーターを宣言する必要があります。3つの宣言メソッドはすべて、整数ポインターが実行されることをコンパイラーに通知するため、同様の結果を生成します。受け取る必要があります。 配列を関数に渡す方法は3つあります- ポインタとしての正式なパラメータ void myFunction(int *param) {    // Do so