- ArrayBsearch
- ArrayCopy
- ArrayCompare
- ArrayFree
- ArrayGetAsSeries
- ArrayInitialize
- ArrayFill
- ArrayIsDynamic
- ArrayIsSeries
- ArrayMaximum
- ArrayMinimum
- ArrayPrint
- ArrayRange
- ArrayResize
- ArrayInsert
- ArrayRemove
- ArrayReverse
- ArraySetAsSeries
- ArraySize
- ArraySort
- ArraySwap
ArrayRemove
从指定索引开始移除数组中指定的元素数量。
bool ArrayRemove(
|
参数
array[]
[in][out] 数组。
start
[in] 索引,数组元素从这里开始移除。
count=WHOLE_ARRAY
[in] 移除元素的数量。WHOLE_ARRAY值表示移除从指定索引到数组结束的所有元素。
返回值
如果成功返回true,否则返回false。若要获得错误信息,请调用GetLastError()函数。可能错误:
- 5052 ERR_SMALL_ARRAY(start值过大),
- 5056 ERR_SERIES_ARRAY(该数组不能更改,指标缓冲区),
- 4003 ERR_INVALID_PARAMETER(count值过大),
- 4005 - ERR_STRUCT_WITHOBJECTS_ORCLASS(包含具有析构函数的复杂对象的固定大小数组),
- 4006 - ERR_INVALID_ARRAY (包含具有析构函数的结构或类对象的固定大小数组)。
注意
如果函数用于固定大小的数组,该数组大小不变:剩余的"tail"物理复制到start位置。对于准确理解函数如何工作,请参阅以下示例。"Physical(物理)"复制表示复制的对象不是通过调用构造函数或复制操作符创建的。而是复制对象的二进制表示法。为此,您不可以将ArrayRemove()函数应用于包含析构函数对象的固定大小数组 (激活ERR_INVALID_ARRAY或ERR_STRUCT_WITHOBJECTS_ORCLASS错误)。当在移除这种对象时,应该调用两次析构函数 针对原始对象及其副本。
您不能从由SetIndexBuffer()函数指定为指标缓冲区的动态数组移除元素。这会导致ERR_SERIES_ARRAY错误。对于指标缓冲区,所有更改大小的操作都通过程序端的执行子系统来完成。
例如:
//+------------------------------------------------------------------+
|
另见
ArrayInsert, ArrayCopy, ArrayResize,ArrayFree