C'è una funzione, anche se nessuno l'ha vista (né nell'aiuto né sul sito web), ma c'è)
C'è una funzione, anche se nessuno l'ha vista (né nell'aiuto né sul sito web), ma c'è)
C'è una funzione, anche se nessuno l'ha vista (né nell'aiuto né sul sito web), ma c'è)
In arrivo
Per cancellare un singolo elemento, la funzione
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); }
Risultato
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
Poi potete convertire questa funzione nel tipo bool, in modo da poter controllare la sua esecuzione. Fondamentalmente, se sei intelligente e puoi controllare i valori che gli mandi, puoi usarlo comunque...
Ricordate che non potete ridurre la dimensione degli array statici.
Per cancellare un singolo elemento, la funzione
Risultato
Poi potete convertire questa funzione nel tipo bool, in modo da poter controllare la sua esecuzione. Fondamentalmente, se sei intelligente e puoi controllare i valori che gli mandi, puoi usarlo comunque...
Non dimenticate che non potete ridurre la dimensione degli array statici.
Il compagno ha scritto: monodimensionale e bidimensionale. La vostra funzione non funziona con le due dimensioni. Mostrami come far funzionare una funzione con lo stesso nome per entrambi :)
Non sto riducendo la dimensione dell'array, sto rimuovendo un elemento da esso, sono cose diverse. Ho capito che la vostra funzione ha eliminato il valore1.13612, è specificato nella lineadellArrayElement(3, array); cioè il 3° elemento viene rimosso dall'array, cioè capito bene? Quanto sono veloci questi esperimenti che caricano molto il programma?
Oh, una funzione segreta, e come funziona?
In C++ ci sono tali funzioni, si inserisce la libreria e l'azione viene eseguita. Ma teniamo conto del fatto che mql non ha tali funzioni e vogliamo usare funzioni scritte a mano.
Ho trovato questohttp://kvodo.ru/urok-7-2-massivyi-osnovnyie-operatsii.html (e anche questo https://purecodecpp.com/archives/1935)
Supponiamo di dover rimuovere l'elementom-esimo in numerodalla matriceX composta dan elementi. Per questo, basta scrivere (m+1)-esimo elemento al posto dell'elementom, (m+2)-esimo elemento al posto di (m+1)-esimo, e così via,n-1 al posto di(n-2)e usare l'elementon-1quando si lavora ulteriormente con questo array:
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--; //уменьшение количества элементов в массиве
Ma questo con C++. Ma qui abbiamo bisogno di conoscere il numero di elementi memorizzati nell'array. Dovete scrivere una funzione che legga gli elementi come sono scritti.
C'è una funzione, anche se nessuno l'ha vista (né nell'aiuto né sul sito web), ma c'è)
Come funziona?
int ArrayRemove()
Non c'è una descrizione nella guida, dove posso leggerlo?
![MQL5 - Linguaggio delle strategie di trading integrato nel client terminal MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
- App di trading gratuite
- Oltre 8.000 segnali per il copy trading
- Notizie economiche per esplorare i mercati finanziari
Accetti la politica del sito e le condizioni d’uso