배열(1차원 2차원)에서 요소를 제거하는 방법은 무엇입니까?

Seric29  
배열에서 요소를 제거하는 방법은 무엇입니까? 이를 위해 저장된 요소의 수를 알아야 합니까?
Ilya Malev  

아무도 그것을 본 적이 없지만 (도움말이나 사이트에서) 그러한 기능이 있지만 있습니다)


Aleksey Semenov  
Ilya Malev :

아무도 그것을 본 적이 없지만 (도움말이나 사이트에서) 그러한 기능이 있지만 있습니다)

오, 비밀 기능, 그리고 어떻게 작동합니까?
Rashid Umarov  
Ilya Malev :

아무도 그것을 본 적이 없지만 (도움말이나 사이트에서) 그러한 기능이 있지만 있습니다)


곧 온다

Alexey Viktorov  

단일 요소를 제거하려면 이 기능이 매우 적합합니다.

 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 유형으로 독립적으로 변환하여 실행 사실을 제어할 수 있습니다. 하지만 원칙적으로 손이 비뚤어지지 않고 어떤 값을 보내는지 제어할 수 있다면 어떻게 해서든 사용할 수 있습니다...

정적 배열 은 크기를 줄일 수 없습니다.

Ilya Malev  
Alexey Viktorov :

단일 요소를 제거하려면 이 기능이 매우 적합합니다.

결과

그런 다음 이 함수를 bool 유형으로 독립적으로 변환하여 실행 사실을 제어할 수 있습니다. 하지만 원칙적으로 손이 비뚤어지지 않고 어떤 값을 보내는지 제어할 수 있다면 어떻게 해서든 사용할 수 있습니다...

정적 배열 은 크기를 줄일 수 없습니다.

친구가 말합니다: 1차원 및 2차원 . 2D 기능이 작동하지 않습니다. 같은 이름의 함수가 두 주제에서 작동하도록 하는 방법을 보여주세요. :)

Seric29  
Alexey Viktorov :

정적 배열 은 크기를 줄일 수 없습니다.

나는 배열의 크기를 줄이지 않고 배열에서 요소를 제거합니다. 이것들은 다른 것입니다. 내가 알기로는 값 1.13612가 함수에서 제거되었으며 dellArrayElement( 3 , array); 배열 즉, 세 번째 요소가 배열에서 제거되었습니다. 올바르게 이해하고 있습니까? 프로그램을 많이 로드하는 그러한 실험의 속도는 얼마입니까?

Seric29  
Aleksey Semenov :
오, 비밀 기능, 그리고 어떻게 작동합니까?

C++에는 이러한 기능이 있는데, 라이브러리를 연결하면 이 동작이 수행됩니다. 그러나 mql에는 그런 기능이 없다는 사실을 고려하고 손으로 쓴 기능을 사용하고 싶습니다.

Seric29  

나는 이것을 발견했습니다 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++에서입니다. 그러나 여기서 배열에 저장된 요소의 수를 알아야 합니다. 작성된 대로 요소를 계산하는 함수를 작성해야 합니다.

Seric29  
Alexey Viktorov :

단일 요소를 제거하려면 이 기능이 매우 적합합니다.

예를 들어 가격 값이 아니라 날짜를 배열에서 제거해야 하는 경우 CopyOpen 이 도움말의 날짜와 함께 작동합니까? 이 기능이 가격과 함께 작동한다는 것이 분명해졌습니다.

Seric29  
Ilya Malev :

아무도 그것을 본 적이 없지만 (도움말이나 사이트에서) 그러한 기능이 있지만 있습니다)


기능 작동 방식

 int ArrayRemove()

설명서에 설명이 없는데 어디서 읽을 수 있나요?

사유: