【MQL4勉強プログラミング】ArraySort()関数で配列の最初の次元の要素並べ替え

ArraySort()関数は、配列の最初の次元の要素を、昇順又は降順に並べ替えるために使用します。

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

bool ArraySort(
void& array[],
int count=WHOLE_ARRAY,
int start=0,
int direction=MODE_ASCEND
);

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

  • void& array[]
    要素の並び替えを行う配列名を指定します。
  • int count=WHOLE_ARRAY
    並び替えを行う要素数を指定します。
    当該引数を省略した場合は、配列に含まれる全ての要素について並び替えを行います。
  • int start=0
    並び替えを始める要素の位置(=配列番号)を指定します。
    標準では、先頭の要素(=配列番号「0」)から並び替えを行います。
  • int direction=MODE_ASCEND
    並び替えを行う方向(=昇順 or 降順)を指定します。
    「MODE_ASCEND」:昇順で並び替える。
    「MODE_DESCEND」:降順で並び替える。
    当該引数を省略した場合は、昇順で並び替えられます。

戻り値

並び替えが成功した場合には「true」を、成功しなかった場合には「false」を返します。

具体例

  • 配列Array[5]={3,2,4,1,5}を昇順に並び替えたい場合は、以下のように記述します。

#property strict

#property show_cnfirm

void OnStart()
{
  double Array[5]={3,2,4,1,5};
  
  ArraySort(Array);
  //配列Array[]は、Array[5]={1,2,3,4,5}となる。
}
  • 配列Array[5]={3,2,4,1,5}を降順に並び替えたい場合は、以下のように記述します。

#property strict

#property show_cnfirm

void OnStart()
{
  double Array[5]={3,2,4,1,5};
  
  ArraySort(Array,WHOLE_ARRAY,0,MODE_DSCEND);
  //配列Array[]は、Array[5]={5,4,3,2,1}となる。
}