如何从一个数组中删除一个元素?我需要知道其中存储的元素数量吗?
有一个功能,虽然没有人看到它(无论是在帮助中还是在网站上),但它是存在的 )
Ilya Malev:
哦,一个秘密功能,它是如何工作的?
有一个功能,虽然没有人看到它(无论是在帮助中还是在网站上),但它是存在的 )
Ilya Malev:
有一个功能,虽然没有人看到它(无论是在帮助中还是在网站上),但它是存在的 )
即将推出
要删除一个单独的项目,函数
void OnStart() { double array[]; CopyOpen(_Symbol, PERIOD_CURRENT, 0, 6, array); ArrayPrint(array); dellArrayElement(3, array); ArrayPrint(array); }/*******************************************************************/ void dellArrayElement(int shift, double &arr[]) { int arrSize = ArraySize(arr); if(shift > arrSize) return; if(shift < arrSize) ArrayCopy(arr, arr, shift, shift+1); ArrayResize(arr, arrSize-1); }
结果
2018.12.22 09:55:06.206 !00 (EURUSD,M15) 1.13588 1.13607 1.13588 1.13612 1.13586 1.13614 2018.12.22 09:55:06.206 !00 (EURUSD,M15) 1.13588 1.13607 1.13588 1.13586 1.13614
然后你可以把这个函数转换成bool类型,这样你就可以控制它的执行。基本上,如果你很聪明,可以控制你发送给它的数值,无论如何你都可以使用它...
记住,你不能减少静态数组的 大小。
Aleksey Semenov:
哦,一个秘密功能,它是如何工作的?
哦,一个秘密功能,它是如何工作的?
在C++中,有这样的函数,你插入库中,动作就会被执行。但我们考虑到mql没有这样的功能,希望使用手写的功能。
我发现这个http://kvodo.ru/urok-7-2-massivyi-osnovnyie-operatsii.html(还有这个https://purecodecpp.com/archives/1935)。
假设我们需要从 由n个元素组成的数组X中 删除第m个元素。为此,只需用(m+1)个元素 代替m元素,(m+2)个元素代替(m+1)个元素, 以此类推,用n-1代替(n-2),在进一步处理这个数组时使用n-1元素。
cout<<"\n m="; cin>>m; //ввод номера элемента, подлежащего удалению for (i=m; i<n-1; X[i+1],i++); //удаление m-го элемента for (i=0; i<n-1; i++) cout<<X[i]<<"\t"; //вывод измененного массива n--; //уменьшение количества элементов в массиве
但那是用C++语言。但这里我们需要知道存储在数组中的项目数量。你需要写一个函数,在写入元素时读取它们。
Ilya Malev:
有一个功能,虽然没有人看到它(无论是在帮助中还是在网站上),但它是存在的 )
它是如何工作的?
int ArrayRemove()
在帮助中没有对它的描述,我在哪里可以读到它?