配列から要素を削除するにはどうすればよいですか?格納されている要素数を知る必要があるのでしょうか?
誰も見ていない(ヘルプでもホームページでも)けど、機能はありますよ )
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の 代わりに(m+1)番目の 要素,(m+1)番目の 要素の代わりに(m+2)番目の 要素,(n-2) の代わりにn- 1と書き,さらにこの配列を扱うときには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()
ヘルプに記載がないのですが、どこで読めますか?
取引の機会を逃しています。
- 無料取引アプリ
- 8千を超えるシグナルをコピー
- 金融ニュースで金融マーケットを探索