void BySort( double &mas[][ 3 ]) { // Сортируем по размеру лота от большего к меньшему ArraySort (mas); ArraySetAsSeries (mas, true ); // при такой записи mql5 ругается, в mql4 работает
... здесь работа с уже сортированным массивом и основной код }
void BySort( double &mas[][ 3 ]) { // Сортируем по размеру лота от большего к меньшему ArraySort (mas); ArraySetAsSeries (mas, true ); // при такой записи mql5 ругается, в mql4 работает
... здесь работа с уже сортированным массивом и основной код }
오류 발생: "'' - 매개변수 변환이 허용되지 않습니다.e.mq5207620"
그래서 매뉴얼은 이렇게 말합니다.
메모
AS_SERIES 플래그는 다차원 배열 및 정적 배열(즉, 컴파일 타임에 대괄호로 묶인 크기가 지정된 배열)에 대해 설정할 수 없습니다.
정렬 후 ArraySetAsSeries를 사용하여 인덱싱 순서를 변경하면 어떻게 될까요?
ArraySetAsSeries는 다차원 배열 에 적용되지 않습니다.
예, 해당되지 않습니다. 그리고 어떤 용도인지 아시는 분 답변 부탁드립니다.
예, 해당되지 않습니다. 그리고 어떤 용도인지 아시는 분 답변 부탁드립니다.
때로는 2차원 배열의 버블 정렬을 사용합니다. 정렬할 방향과 치수를 선택할 수 있습니다.
코드를 받으러 집에 오거나 마음에 들지 않으면 레이아웃을 지정합니다.)
추가: 얼마나 리소스 집약적입니까?
코드를 받으러 집에 오거나 마음에 들지 않으면 레이아웃을 지정합니다.)
나는 당신이 쓴 배열의 차원을 기억하지 못합니다. 아마도 필요하지 않을 수도 있지만 여기에 밀어 넣을 것입니다 ...
//| Пузырьковая сортировка двумерного массива |
//+------------------------------------------------------------------+
template < typename T>
void ArraySortBubbleTwoDims(T& array[][TWO_DIM], int sort_dimension= 0 , int sort_direction= 0 ) {
T t= 0 ;
int k= ArrayRange (array, 1 ); // Количество колонок
int n= ArrayRange (array, 0 ); // Количество строк
//---
if (sort_dimension< 0 ) sort_dimension= 0 ;
if (sort_dimension>k) sort_dimension=k;
//---
for ( int i=n- 1 ; i> 0 ; i--) {
for ( int j= 0 ; j<i; j++) {
//--- по возрастанию
if (sort_direction== 0 ) {
if (array[j][sort_dimension]>array[j+ 1 ][sort_dimension]) {
for ( int e= 0 ; e<k; e++) {
t=array[j][e];
array[j][e]=array[j+ 1 ][e];
array[j+ 1 ][e]=t;
}
}
}
//--- по убыванию
else {
if (array[j][sort_dimension]<array[j+ 1 ][sort_dimension]) {
for ( int e= 0 ; e<k; e++) {
t=array[j][e];
array[j][e]=array[j+ 1 ][e];
array[j+ 1 ][e]=t;
}
}
}
}
}
}
//+------------------------------------------------------------------+
그러니 맥주 한 잔 하시고 방문해보세요 ;)
나는 당신이 쓴 배열의 차원을 기억하지 못합니다. 아마도 필요하지 않을 수도 있지만 여기에 밀어 넣을 것입니다 ...
겨울인 것 같지만 스키는 가지 않는다
{
double m[][ 3 ];
if (условия)
{
// много кода
c++;
ArrayResize (m, c);
m[c- 1 ][ 0 ]= Lots();
m[c- 1 ][ 1 ]= Ticket();
m[c- 1 ][ 2 ]= Profit();
}
BySort(m); // передаём в функцию "BySort"
}
void BySort( double &mas[][ 3 ])
{
// Сортируем по размеру лота от большего к меньшему
ArraySort (mas);
ArraySetAsSeries (mas, true ); // при такой записи mql5 ругается, в mql4 работает
... здесь работа с уже сортированным массивом и основной код
}
오류 발생: "'' - 매개변수 변환이 허용되지 않습니다. e.mq5 2076 20"
겨울인 것 같지만 스키는 가지 않는다
{
double m[][ 3 ];
if (условия)
{
// много кода
c++;
ArrayResize (m, c);
m[c- 1 ][ 0 ]= Lots();
m[c- 1 ][ 1 ]= Ticket();
m[c- 1 ][ 2 ]= Profit();
}
BySort(m); // передаём в функцию "BySort"
}
void BySort( double &mas[][ 3 ])
{
// Сортируем по размеру лота от большего к меньшему
ArraySort (mas);
ArraySetAsSeries (mas, true ); // при такой записи mql5 ругается, в mql4 работает
... здесь работа с уже сортированным массивом и основной код
}
오류 발생: "'' - 매개변수 변환이 허용되지 않습니다. e.mq5 2076 20"
메모
AS_SERIES 플래그는 다차원 배열 및 정적 배열(즉, 컴파일 타임에 대괄호로 묶인 크기가 지정된 배열)에 대해 설정할 수 없습니다.
그리고 내가 제안한 기능으로 정렬을 방해하는 것은 무엇입니까?
그래서 매뉴얼은 이렇게 말합니다.
메모
AS_SERIES 플래그는 다차원 배열 및 정적 배열(즉, 컴파일 타임에 대괄호로 묶인 크기가 지정된 배열)에 대해 설정할 수 없습니다.
그리고 내가 제안한 기능으로 정렬을 방해하는 것은 무엇입니까?
함수에 전달할 때 정확히 동일한 오류
어느 곳에서?
귀하의 " ArraySortBubbleTwoDims "에
일반적으로 사이클을 펼치면 문제가 해결됩니다. 하지만 여전히 표준 함수의 형태로 정상적인 솔루션을 보고 싶었습니다.