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

C++のファンクター


ファンクターは、C++の関数オブジェクトです。ファンクターを使用すると、あるクラスのインスタンスオブジェクトを、通常の関数であるかのように呼び出すことができます。 1つの引数を取る関数を考えてみましょう。この関数を関数オブジェクトとして使用して、一連のデータに対して何らかのタスクを実行できます。

サンプルコード

#include <iostream>
#include <algorithm>
using namespace std;
int square(int x) {
   return x*x; //return square of x
}
int main() {
   int data[10] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
   transform(data, data+10, data, square);
   for (int i = 0; i<10; i++)
      cout << data[i] << endl;
}

出力

0
1
4
9
16
25
36
49
64
81

  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