【MQL4勉強プログラミング】ArrayFill()関数で指定した値で配列の要素を埋める

ザフナーラボブログ

ArrayFill()関数は、指定した値で配列の要素を埋めるために使用します。

ArrayFill()関数は、以下のように定義されています。

void ArrayFill(
void& array[],
int start,
int count,
void value
);

各引数の意味は、以下のとおりです。

  • void& array[]
    第四引数で指定する値で埋めたい単純な型の配列の配列名を指定します。
    指定できる配列の型は以下のとおりです。
    char,uchar,short,ushort,int,uint,long,ulong,bool,color,datetime,
    float,double
  • int start
    第四引数で指定する値を埋め始める要素のインデックスを指定します。
  • int count
    第四引数で指定する値を埋める要素の数を指定します。
  • void value
    配列の要素として埋めたい値を指定します。

戻り値

ArrayFill()関数はvoid型なので、戻り値はありません。

注意点

ArrayFill()関数が呼ばれた場合は、配列の要素のインデックスは通常の配列と同様に振られることが含意されます。したがって、ArraySetAsSeries()関数(詳細は「こちら」を参照してください。)によって、通常の配列を時系列配列に変換していたとしても、それは無視されます。

ArrayFill()関数を実行するうえにおいては、多次元配列は一次元配列として扱われます。例えば、二次元配列array[2][4]は、ArrayFill()関数を実行するうえにおいては、一次元配列array[8]として扱われます。したがって、この場合は、ArrayFill()関数の第二引数は、「5」と指定することができます。

具体例

10個の要素を持つ配列の最初の5個の要素を「123」、最後の5個の要素を「456」で埋めたい場合は、以下のように記述します。


int start()
{
 int array[];

 ArrayResize(array,10);

 ArrayFill(array,0,5,123);
 ArrayFill(array,5,5,456);

 return(0);
}
  • ArrayResize()関数の詳細については「こちら」を参照してください。