2018年10月14日日曜日
[MQL4] CArrayObj::Insert() に最大値以上の index を指定すると Add と同じ動作になる
[CArrayObj](https://www.mql5.com/en/docs/standardlibrary/datastructures/carrayobj) の `Insert()` で `Total` 以上の値を指定したらどのようになるかやってみました。
結果は、「どんなに大きな値を指定しても最後に挿入される」でした。
エラーが返ってこない仕様なので
、そうだろうとは思ってたけど、念の為。
```mq4
// index 0〜9 の要素を追加
for (int i = 0; i < 10; i++) {
int value = (i % 2 == 0) ? i : i + 10;
m_item_array.Add(new Item(value));
}
Item* item = new Item(99);
// index 99?に挿入
// 実際は index 10 (最後)に挿入される
m_item_array.Insert(item, 99);
```
`Item` 等の実装は以下のリンク先に掲載したものと同じです。
> 参考
>
> [MQL4 で可変長配列を使用する方法 | Strategy of C](https://strategyofc.blogspot.com/2018/10/mql4.html)