오류, 버그, 질문 - 페이지 2467

 
Igor Makanu :

다시 한 번 2차원 배열에 대한 클래스 래퍼를 만들려고 했지만 아무리 싸워도 []를 오버로드하여 일반 2차원 배열로 액세스할 수 없었습니다. arr[1][2]

이 문제는 4-5년 전에 해결되었으며 기성품 솔루션이 있는 별도의 지점이 있었습니다.
활동적인 참가자 중 오늘날까지 살아남은 사람은 거의 없으며 대부분 금지되었습니다 ...

PS 클래스에 2차원이 아니라 3차원 이상의 배열이 있었습니다.

 
아, 그 스레드를 찾은 것 같아요 https://www.mql5.com/en/forum/6729
В MQL5 всегда есть место подвигу ! ;)
В MQL5 всегда есть место подвигу ! ;)
  • 2012.05.16
  • www.mql5.com
Общее обсуждение: В MQL5 всегда есть место подвигу ! ;)
 
Sergey Dzyublik :

이 문제는 4-5년 전에 해결되었으며 기성품 솔루션이 있는 별도의 지점이 있었습니다.
활동적인 참가자 중 오늘날까지 살아남은 사람은 거의 없으며 대부분 금지되었습니다 ...

PS 클래스에 2차원이 아니라 3차원 이상의 배열이 있었습니다.

글쎄, 결국 나는 이 스레드 를 보았고 금지되거나 삭제 된 계정이 없습니다. 그 지부의 모든 사람들은 건강하고 건강합니다.

그런 스캔들을 만들어 행정부에 던질 작정이야? 글쎄, 그것은 바보입니다. 주변에서 악을 보지 마세요.

 
Sergey Dzyublik :
아, 그 스레드를 찾은 것 같아요 https://www.mql5.com/en/forum/6729

지난 달에 이 주제를 읽은 것 같습니다. 저녁에 다시 보겠습니다.

그러나 [][] 오버로드에 대한 내 실험은 [][] 오버로드를 사용하여 MQL 또는 L-값 또는 R-값에서 한 가지를 구현할 수 있다는 이해로 끝났습니다.

동적 2차원 배열로 작업할 수 있는 기성 솔루션이 있는 경우 - CodeBase에 넣으면 유용한 것입니다. MT 배포판에서 CMatrixDouble보다 나은 것을 검색한 결과 찾을 수 없습니다. #include Math Alglib

 
class A{
public :
   uchar data1;
};

A func(){
   A a;
   a.data1 = 1 ;
   return a;       //object of 'A' cannot be returned, copy constructor 'A::A(const A &)' not found
}


void OnStart (){  
   A a;

   //1
   A aa = a;
   a = aa;
   
   //2
   a = func();   
}

//1과 //2의 차이점은 무엇입니까?
불행히도 임의의 데이터 유형 이 있는 컨테이너에서 템플릿을 사용할 때 이 문제를 해결할 방법이 없습니다.

특정한 경우에 문제를 해결하기 위해 상속을 구현하고 상속자의 기본 클래스에 대한 복사 생성자를 정의하고 문제 함수의 반환 유형을 기본에서 상속자로 바꿀 수 있습니다.

 
개발자:
배열에 대한 용량을 반환하는 함수를 추가하십시오(메모리 공간이 예약된 요소의 수). ArrayResize 의 예비 매개변수와 혼동하지 마십시오.
string의 경우 StringBufferLen 이 있지만 array의 경우 아무 것도 없습니다.
 

거래, 자동 거래 시스템 및 거래 전략 테스트에 관한 포럼

오류, 버그, 질문

Sergey Dzyublik , 2019.05.22 16:01

코드를 제공한 TheXpert 에게 다시 한 번 감사드립니다.
ArrayResize 용량 МТ5(빌드 2057)에 대해 다음과 같은 결과가 있습니다.


결과:
 2019.05 . 22 17 : 00 : 50.249 Test_array_resize (EURUSD,H1)   TEST_ArrayCapacity:TEST_ArrayCapacity
2019.05 . 22 17 : 00 : 50.249 Test_array_resize (EURUSD,H1)   TestArrayCapacity(store, 100 , 0 ): 100
2019.05 . 22 17 : 00 : 50.249 Test_array_resize (EURUSD,H1)   TestArrayCapacity(store, 100 , 100 ): 100
2019.05 . 22 17 : 00 : 50.249 Test_array_resize (EURUSD,H1)   TestArrayCapacity(store, 101 , 100 ): 201
2019.05 . 22 17 : 00 : 50.249 Test_array_resize (EURUSD,H1)   TestArrayCapacity(store, 200 , 100 ): 201
2019.05 . 22 17 : 00 : 50.249 Test_array_resize (EURUSD,H1)   TestArrayCapacity(store, 201 , 100 ): 201
2019.05 . 22 17 : 00 : 50.249 Test_array_resize (EURUSD,H1)   TestArrayCapacity(store, 202 , 100 ): 302
2019.05 . 22 17 : 00 : 50.249 Test_array_resize (EURUSD,H1)   TestArrayCapacity(store, 100 , 1 ): 302
2019.05 . 22 17 : 00 : 50.249 Test_array_resize (EURUSD,H1)   TestArrayCapacity(store, 100 , 400 ): 302
2019.05 . 22 17 : 00 : 50.249 Test_array_resize (EURUSD,H1)   TestArrayCapacity(store, 300 , 400 ): 302
2019.05 . 22 17 : 00 : 50.249 Test_array_resize (EURUSD,H1)   TestArrayCapacity(store, 301 , 600 ): 302
2019.05 . 22 17 : 00 : 50.249 Test_array_resize (EURUSD,H1)   TestArrayCapacity(store, 302 , 600 ): 302
2019.05 . 22 17 : 00 : 50.249 Test_array_resize (EURUSD,H1)   TestArrayCapacity(store, 303 , 600 ): 903
2019.05 . 22 17 : 00 : 50.249 Test_array_resize (EURUSD,H1)   TestArrayCapacity(store, 100 , 0 ): 903
2019.05 . 22 17 : 00 : 50.249 Test_array_resize (EURUSD,H1)   TestArrayCapacity(store, 100 , 100 ): 903
2019.05 . 22 17 : 00 : 50.250 Test_array_resize (EURUSD,H1)   TestArrayCapacity(store, 100 ,- 1 ): 100
2019.05 . 22 17 : 00 : 50.250 Test_array_resize (EURUSD,H1)   TestArrayCapacity(store, 100 , 100 ): 100
2019.05 . 22 17 : 00 : 50.250 Test_array_resize (EURUSD,H1)   TestArrayCapacity(store, 105 , 100 ): 205

 

좋은 저녁이에요!

아무도 무슨 일이 일어나고 있는지 제안할 수 있습니까?

이런 건 처음 봐요. 기능 중 하나의 간단한 코드.

 double yyy= 28 / 50 * 100 ;
   
Print ( "test yyy=" , yyy);

결과:

"2019.05.21 19:38:29.364 2019.04.01 00:05:00 테스트 yyy=0.0"


 
Michael2K :

좋은 저녁이에요!

아무도 무슨 일이 일어나고 있는지 제안할 수 있습니까?

정수(28) / 정수(50) * 정수(100) == 정수(0) * 정수(100) == 정수(0) == 이중(0.0)


점을 사용 하여 이중 유형을 나타냅니다.

 double yyy= 28. / 50 * 100 ;
 
Sergey Dzyublik :
ArrayResize의 reserved_size 매개변수 사용에 대한 의사 코드도 제공하십시오.
다음 ArrayResize에서 reserved_size의 새 값을 지정할 때 설명된 시스템 동작은 어디에도 없습니다.
세르게이 주블릭 :


순차적으로 호출될 때 다음 가정이 사실입니까?

그들은 한 번 이 스레드에서 의사 코드를 제공했습니다. 내가 기억하는 한, 어레이 크기가 이 용량을 초과할 때만 용량이 증가합니다. 물론 상황이 바뀔 수 있지만.

그리고 용량 값을 구하는 기능은 정말 필요합니다.

사유: