ArrayFill 関数
この関数は、指定した値を配列に設置します。
ArrayFill関数が呼び出されると、通常のインデックス付け方向 (左から右) が常に暗示されます。ArraySetAsSeries関数を使用した配列要素へのアクセス順序の変更は無視されることになります。
ArrayFill関数で処理すると、多次元配列は 1次元として表示されます。たとえば、array[2][4]は array[8]として処理されます。従って、この配列を操作する時は、初期要素のインデックスを 5に指定することができます。
ゆえに、array[2][4] に対する ArrayFill(array, 5, 2, 3.14) の呼び出しは、array[1][1] および array[1][2] 要素に 3.14を設置することになります。
データ型と構成・戻り値
void ArrayFill(①, ②, ③, ④);
戻り値は無し。
引数 [4]
ArrayFill関数は 4個の引数で構成されます。
番 号 | 引数名 | データ型 | 単位 | 初期値 | 説明 |
---|---|---|---|---|---|
① | array[] | void& | - | - | 単純型( char、uchar、short、ushort、int、uint、long、ulong、bool、color、datetime、float、double )の配列。 |
② | start | int | - | - | 開始インデックス。 |
③ | count | int | - | - | 設置する要素の数。 |
④ | value | void | - | - | 設置する値。 |
使用例
ArrayFill関数による配列への値の設置
配列へ値を設置するコードです。ArrayFill関数は、既に配列に値がある場合は、値を置き換えることになります。
コード
// ArrayFill関数による配列への値の設置
#property strict
void OnInit() {
int i,j;
int arr1[]={1,2,3}; // 1次元配列
ArrayResize(arr1,3); // 1次元配列サイズの設定
ArrayFill(arr1,0,2,123); // 2個「123」を設置
ArrayFill(arr1,2,1,456); // 1個「456」を設置
for(i=0;i<3;i++) {
Print("arr1[",i,"]=", arr1[i]);
}
int arr2[][3]; // 2次元配列
ArrayResize(arr2,2); // 1次元配列サイズの設定
ArrayFill(arr2,0,3,123); // 1番目の配列に3個「123」を設置
ArrayFill(arr2,3,3,456); // 2番目の配列に3個「456」を設置
for(i=0;i<2;i++) {
for(j=0;j<3;j++) {
Print("arr2[",i,"][",j,"]=",arr2[i][j]);
}
}
}
コードをコンパイルして実行する方法はこちらを参考にしてください。(デモ口座でお試しください)