뉘앙스 중 하나는 이것이다. 생성자/소멸자가 있는 구조의 배열을 사용하는 경우 ArrayResize는 값의 차이와 동일한 양으로 어느 방향으로든 구조를 호출합니다.
그러나 ArrayCopy의 사용은 모든 생성자에 대한 호출입니다. ArrayTmp 제거 - 모든 소멸자를 호출합니다. 따라서 ArrayResize2는 정확히 ArrayResize가 아닙니다.
그러면 ArrayReallocate라고 부르는 것이 더 정확할 것입니다. 그런 강제복제에는 별 의미가 없지만. 추가 브레이크. 유일한 것은 아마도 클래스 객체의 배열이 포인터를 재설정해야 하는 경우(이전 값을 무효로 만들기), 이것이 어딘가에서 고려된다면(그러나 이것은 목발에 가깝습니다)
고맙습니다. ArraySwap 기능을 사용하는 것은 나에게 일어나지 않을 것입니다.
내가 이해하는 한 귀하의 기능은 크기가 증가하거나 감소할 때 모두 작동합니다. 즉, ArrayResize의 완전한 유사체로 작동합니다.
ArraySwap, ArrayResize, ArrayCopy 세 함수를 호출하는 것보다 배열을 늘릴 때 표준 ArrayResize를 호출하는 것이 낫지 않습니까?
ps 버전을 확인하고 MqlTick 어레이를 1,000,000에서 500,0000으로 줄이는 동안 두 개의 사본으로 광산을 찾았습니다. 귀하의 버전은 22밀리초 내에 처리됩니다. 내 점수는 37-38입니다.ArraySwap, ArrayResize, ArrayCopy 세 함수를 호출하는 것보다 배열을 늘릴 때 표준 ArrayResize를 호출하는 것이 낫지 않습니까?
생각했지만 하지 않았기 때문입니다. 실제로 더 많은 뉘앙스가 있습니다. 그래서 더 간단한 버전을 사용하기로 결정했습니다.
뉘앙스 중 하나는 이것이다. 생성자/소멸자가 있는 구조의 배열을 사용하는 경우 ArrayResize는 값의 차이와 동일한 양으로 어느 방향으로든 구조를 호출합니다.
그러나 ArrayCopy의 사용은 모든 생성자에 대한 호출입니다. ArrayTmp 제거 - 모든 소멸자를 호출합니다. 따라서 ArrayResize2는 정확히 ArrayResize가 아닙니다.
최적화 후에는 이것을 볼 수 있습니다
프레임 모드에서 Expert Advisor를 끄고 표준 모드에서 실행하면 최적화 중에 받은 것과 동일한 데이터가 표시됩니다.
이 접근 방식을 사용하면 Optimization 의 결과 로 반복적으로 돌아갈 수 있습니다.
PS 어드바이저의 프레임 모드에 대한 터미널에서 열리는 차트에서 2명 이상의 어드바이저를 실행할 수 없습니다. 따라서 표준 모드에서 실행해야 하는 경우 프레임에 대해 열리지 않은 차트에서 실행해야 합니다.
fxsaber :
extern теперь является жестко заданным макросом
따라서 변경 없이 mq4 코드가 MT5에서 작동하도록 하는 것이 항상 가능한 것은 아닙니다.
문서에는 변경 사항이 없습니다. 이것을 더 자세히 설명할 수 있습니까?
문서에는 변경 사항이 없습니다. 이것을 더 자세히 설명할 수 있습니까?
이러한 코드
항상 경고를 발행할 것입니다. "불가능"에 대해 - 흥분했습니다. 재정의할 수 있으므로 이러한 상황에서는 항상 경고만 표시됩니다.
뉘앙스 중 하나는 이것이다. 생성자/소멸자가 있는 구조의 배열을 사용하는 경우 ArrayResize는 값의 차이와 동일한 양으로 어느 방향으로든 구조를 호출합니다.
그러나 ArrayCopy의 사용은 모든 생성자에 대한 호출입니다. ArrayTmp 제거 - 모든 소멸자를 호출합니다. 따라서 ArrayResize2는 정확히 ArrayResize가 아닙니다.
그러면 ArrayReallocate라고 부르는 것이 더 정확할 것입니다. 그런 강제복제에는 별 의미가 없지만. 추가 브레이크.
메모리 해제 가 유일한 이유입니다.