- ArrayBsearch
- ArrayCopy
- ArrayCompare
- ArrayFree
- ArrayGetAsSeries
- ArrayInitialize
- ArrayFill
- ArrayIsDynamic
- ArrayIsSeries
- ArrayMaximum
- ArrayMinimum
- ArrayPrint
- ArrayRange
- ArrayResize
- ArrayInsert
- ArrayRemove
- ArrayReverse
- ArraySetAsSeries
- ArraySize
- ArraySort
- ArraySwap
ArrayInsert
指定されたインデックスから開始して、指定された数の要素をソース配列からターゲット配列に挿入します。
bool ArrayInsert(
|
パラメータ
dst_array[]
[in][out] 追加先の配列
src_array[]
[in] 追加元の配列
dst_start
[in] ソース配列から要素を挿入するためのターゲット側配列内のインデックス
src_start=0
[in] 開始位置からソース配列の要素が挿入のために取得される、ターゲット配列のインデックス。
count
[in] ソース配列から追加される要素数。WHOLE_ARRAYは指定されたインデックスから配列の最後までのすべての要素を意味します。
戻り値
成功の場合はtrue、それ以外の場合はfalse. エラー情報を取得するには、GetLastError() 関数が呼ばれます。可能なエラーは下記です。
- 5052 – ERR_SMALL_ARRAY(startおよび/またはcount パラメータは間違って設定されている、またはsrc_array[]ソース配列が空である)
- 5056 – ERR_SERIES_ARRAY(配列が変更不可能、指標バッファ)
- 4006 – ERR_INVALID_ARRAY(自分自身へのコピーは許可されていない、配列の型が異なる、または、クラスオブジェクトまたはデストラクタ構造体を含む固定サイズの配列がある)
- 4005 - ERR_STRUCT_WITHOBJECTS_ORCLASS(配列にPOD構造体が含まれていないため、シンプルなコピーが不可能)。
- 配列サイズArrayRemove()関数の説明にあるターゲット配列サイズであるdst_array[]を変更するときにエラーが発生しました。
注意事項
この関数が固定サイズの配列に使用されている場合、ターゲット側の dst_array[]配列自体のサイズは変わりません。Starting from the dst_start位置から初めて、ターゲット配列の要素は右にシフトされます。最後のcounts要素は失われ、ソース配列からコピーされた要素がとってかわります。
SetIndexBuffer()関数で指標バッファとして指定された動的配列に要素を挿入することはできません。指標バッファの場合、すべてのサイズ変更操作は端末の実行サブシステムによって実行されます。
ソース配列では、要素はsrc_start指数から始めてコピーされます。ソース配列サイズは変更されません。ターゲット配列に追加される要素は、ソース配列要素へのリンクではありません。つまり、要素が後に2つの配列のいずれかで変更されると、あと一つの配列には反映されません。
例:
//+------------------------------------------------------------------+
|
参照
ArrayRemove、 ArrayCopy、ArrayResize、 ArrayFree