ArraySort 関数
この関数は、数値配列の 1次元目を並び替えます。1次元とは「縦列」のことです。
因みに、2次元は「横列」、3次元は「奥行」、4次元は「プラスの指標」と考えてください。4次元についての「プラスの指標」は物理空間とは限らず「時間」という考え方もあります。
MQL4では最大 4次元まで設定できます。
データ型と構成・戻り値
bool ArraySort(①,②,③,④);
戻り値は、並び替えが成功した場合は true、それ以外は falseが返されます。
引数 [4]
ArraySort関数は 4個の引数で構成されます。
番 号 | 引数名 | データ型 | 単位 | 初期値 | 説明 |
---|---|---|---|---|---|
① | array[] | const | - | - | 並び替え用の数値配列。 |
② | count | 整数 or 実数 | - | WHOLE_ARRAY | 並び替える要素数。「WHOLE_ARRAY」は配列全体を並び替えます。 |
③ | start | int | - | 0 | 並び替えする開始のインデックス番号。0は最初の要素から検索します。 |
④ | direction | int | - | MODE_ASCEND | 並び替えの設定。 「MODE_ASCEND」は昇順、 「MODE_DESCEND」は降順。 |
使用例
ArraySort関数による配列の並び替え
2つの配列の並び替えをします。
一つ目は、1次元配列を昇順で並び替えます。
二つ目は、2次元配列の 1次元目を降順に並び替えます。
コード
// ArraySort関数による配列中の数値検索
#property strict
void OnInit() {
int arr1[4] = {16,31,19,3}; // 1次元配列
int arr2[3][4]={{16,31,19,3},{20,21,28,24},{15,38,37,36}}; // 2次元配列
ArraySort(arr1); // 昇順
ArraySort(arr2,WHOLE_ARRAY,0,MODE_DESCEND); // 降順
Print("arr1[4]={",arr1[0],",",arr1[1],",",arr1[2],",",arr1[3],"}");
Print("arr2①={",arr2[0][0],",",arr2[0][1],",",arr2[0][2],",",arr2[0][3],"}");
Print("arr2②={",arr2[1][0],",",arr2[1][1],",",arr2[1][2],",",arr2[1][3],"}");
Print("arr2③={",arr2[2][0],",",arr2[2][1],",",arr2[2][2],",",arr2[2][3],"}");
}
コードをコンパイルして実行する方法はこちらを参考にしてください。(デモ口座でお試しください)
結果
1次元配列と 2次元配列での並び替えの違いについて確認をしてください。
今回の場合、配列を書き直すと以下のようにも書けます。1次元は縦列になるので赤枠部分が並び替えの対象になります。2次元配列でも 1次元目が並び替わっていることが確認できます。