ArraySort
ArraySort
对数值数组按第一维进行排序。排序时会考虑AS_SERIES标志。
bool ArraySort(
void& array[], // array for sorting
int count=WHOLE_ARRAY, // count
int start=0, // starting index
int direction=MODE_ASCEND // sort direction
);参数
- array[]
[in][out] 用于排序的数值数组。
- count=WHOLE_ARRAY
[in] 要排序的元素数量。默认情况下,会对整个数组进行排序。
- start=0
[in] 排序的起始索引。默认情况下,排序从第一个元素开始。
- direction=MODE_ASCEND
[in] 排序方向。可以是以下值之一:
MODE_ASCEND按上升方向排序, MODE_DESCEND按下降方向排序。
返回值
成功时函数返回true,否则返回false。
示例:
//+------------------------------------------------------------------+
//| Script program start function |
//+------------------------------------------------------------------+
void OnStart()
{
//--- example of sorting of one dimensional array
double num_array[5]={4,1,6,3,9};
//--- now array contains values 4,1,6,3,9
ArraySort(num_array);
//--- now array is sorted 1,3,4,6,9
ArraySort(num_array,WHOLE_ARRAY,0,MODE_DESCEND);
//--- now array is sorted 9,6,4,3,1
//--- example of sorting of two dimensional array
int DataArray[5][2]={{7,3},{3,1},{57,14},{12,4},{11,1}};
//--- sorting of DataArray[][] by first dimension (ascending)
ArraySort(DataArray,WHOLE_ARRAY,0,MODE_ASCEND);
//--- print sorted array
for(int i=0; i<5; i++)
{
string str="index "+IntegerToString(i)+": ";
for(int j=0; j<2; j++)
{
if(j==0) str+="{"; else str+=",";
str+=IntegerToString(DataArray[i,j]);
if(j==1) str+="}";
}
Print(str);
}
//--- output
//index 0: {3,1}
//index 1: {7,3}
//index 2: {11,1}
//index 0: {12,4}
//index 4: {57,14}
}最后更新于