ArraySetAsSeries 関数
この関数は、選択した動的配列に AS_SERIESフラグを設定して、要素が時系列配列のようにインデックス付けされます。
つまり、配列は通常左からインデックスが付与されますが、この関数を使用すると右からインデックスが付与されることになります。
AS_SERIESフラグとは、この関数の引数②のことで、これはインデックスを右から順に付与するためのフラグになります。
時系列配列とは 配列変数 Time[]に類するものになります。これは、時系列配列の要素が最後から最初に向かって(最新のデータから最も古いデータの順に)インデックス付与されるという点で、一般的な配列とは異なります。
AS_SERIESフラグは、多次元配列には設定できません。
データ型と構成・戻り値
bool ArraySetAsSeries(①, ②);
戻り値は、処理が成功した場合は true、それ以外は falseが返されます。
引数 [2]
ArraySetAsSeries関数は 2個の引数で構成されます。
番 号 | 引数名 | データ型 | 単位 | 初期値 | 説明 |
---|---|---|---|---|---|
① | array[] | const void& | - | - | 指定した配列。 |
② | flag | bool | - | - | 配列のインデックス付与の方向。 trueはインデックス付与を逆順にします。 |
使用例
ArraySetAsSeries関数による配列のインデックス付与(逆順)
ArraySetAsSeries関数を使った時のインデックスが逆になっているかを確認するコードです。
コード
// ArraySetAsSeries関数による配列のインデックス付与(逆順)
#property strict
void OnInit() {
int i=0; // 確認するインデックス番号
int arr[]={11,12,13,14,15}; // 1次元配列
Print("インデックス ",i,"番(処理前):",arr[i]);
ArraySetAsSeries(arr,true);
Print("インデックス ",i,"番(処理後):",arr[i]);
}
コードをコンパイルして実行する方法はこちらを参考にしてください。(デモ口座でお試しください)
結果
インデックス番号の変数 i の値を変えていろいろ試してみてください。