배열(1차원 2차원)에서 요소를 제거하는 방법은 무엇입니까?
아무도 그것을 본 적이 없지만 (도움말이나 사이트에서) 그러한 기능이 있지만 있습니다)
아무도 그것을 본 적이 없지만 (도움말이나 사이트에서) 그러한 기능이 있지만 있습니다)
아무도 그것을 본 적이 없지만 (도움말이나 사이트에서) 그러한 기능이 있지만 있습니다)
곧 온다
단일 요소를 제거하려면 이 기능이 매우 적합합니다.
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 유형으로 독립적으로 변환하여 실행 사실을 제어할 수 있습니다. 하지만 원칙적으로 손이 비뚤어지지 않고 어떤 값을 보내는지 제어할 수 있다면 어떻게 해서든 사용할 수 있습니다...
정적 배열 은 크기를 줄일 수 없습니다.
오, 비밀 기능, 그리고 어떻게 작동합니까?
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 )-th를 (m + 1)-th 등으로, 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++에서입니다. 그러나 여기서 배열에 저장된 요소의 수를 알아야 합니다. 작성된 대로 요소를 계산하는 함수를 작성해야 합니다.
아무도 그것을 본 적이 없지만 (도움말이나 사이트에서) 그러한 기능이 있지만 있습니다)
기능 작동 방식
int ArrayRemove()
설명서에 설명이 없는데 어디서 읽을 수 있나요?