원칙적으로 이것은 이해할 수 있습니다. 이 배열이 자동으로 증가할 수 없는 이유가 명확하지 않습니까?
그렇다면 왜 이루어지지 못했을까요? 나는 이것을 생각해 내지 않았다))) 이것이 내가 동적 배열 을 사용하려고 시도한 방법입니다 ...
또한 색인을 추가로 저장해야합니다 ... 분수가 아닙니다 ...
누가 동적으로 증가하는 것이 불가능하다고 말했는가???
여기 당신을 돕기 위해
ArrayResize
Устанавливает новый размер в первом измерении массива
intArrayResize (
void & array[], // массив, переданный по ссылке int new_size, // новый размер массива int reserve_size= 0// резервное значение размера (избыточное)
);
Параметры
array[]
[out] Массив для изменения размеров.
new_size
[in] Новый размер для первого измерения.
reserve_size= 0
[in] Необязательный параметр. Размер для дополнительного резерва.
Возвращаемое значение
При успешном выполнении функция возвращает количество всех элементов, содержащихся в массиве после изменения размера; в противном случае возвращает - 1 и массив не меняет размеры.
Примечание
Функция может быть применена только к динамическим массивам. При этом необходимо иметь ввиду, что нельзя изменять размер для динамических массивов, назначенных в качестве индикаторных буферов функцией SetIndexBuffer (). Для индикаторных буферов все операции по изменению размера производит исполняющая подсистема терминала.
Общее число элементов в массиве не может превышать 2147483647 .
При частом распределении памяти рекомендуется использовать третий параметр, задающий резерв для уменьшения количества физического распределения памяти. Все последующие вызовы функции ArrayResize не приводят к физическому перераспределению памяти, а только меняется размер первого измерения массива в пределах зарезервированной памяти. Следует помнить, что третий параметр будет использоваться только тогда, когда будет происходить физическое распределение памяти, например:
ArrayResize (arr, 1000 , 1000 );
for ( int i= 1 ;i< 3000 ;i++)
ArrayResize (arr,i, 1000 );
В данном случае произойдёт 2 перераспределения памяти, один раз до входа в цикл на 2000 элементов, при этом размерность массива будет установлена в 1000 и второй при i равной 2000 . Если третий параметр опустить, то произойдёт 2000 физических перераспределения памяти и это замедлит выполнение программы.
인증서 사용 방법에 대한 인증서를 작성해야 합니다)))))))))))))))))))))))))
언어 개발자인 Patamushta는 Syakh에서 자랐고, 이는 MQL이 하드코어 C 이미지에서 PHP/JS와 유사한 팝으로 전환되는 속도를 크게 늦춥니다. plebeian PHP에서는 새 값을 할당하는 것으로 충분하며 배열은 자체적으로 크기를 조정하며 MQL을 사용하면 코더의 중요성을 느낄 수 있습니다. 따라서 삽을 들고 선별된 전문가의 일원이 되는 것을 즐기십시오.
이것은 원칙적으로 동적 배열 이 일반적으로 어떻게 채워져야 하는지에 대한 간단한 예입니다. 아주 오랫동안 C로 글을 쓰지 않아서 기억이 안 나지만 php에서는 배열이 그대로 채워져 있습니다! 모든 것이 논리적이고 이해할 수 있습니다. 배열에 요소를 추가하면(arr[] = x) 배열이 자동으로 증가하고 요소가 배열 끝에 추가됩니다. 그리고 직접 늘릴 필요도 없고 요소의 인덱스를 직접 지정할 필요도 없습니다. 여기서 우리는 완전히 불필요한 움직임을 수행해야 합니다.
차이가 분명하다...
제 생각에는 이것은 적어도 이상합니다)))
글쎄, 그런 다음 삽을 들고 정확히 그렇게 작동하는 동적 배열의 구현을 직접 작성하십시오. 무엇이 당신을 멈추게 합니까? )) 사실, MCL 할당을 위해 [] 오버로딩을 허용하지 않습니다. 하드코어로는 충분하지 않습니다. ))
이것은 원칙적으로 동적 배열 이 일반적으로 어떻게 채워져야 하는지에 대한 간단한 예입니다. 아주 오랫동안 C로 글을 쓰지 않아서 기억이 안 나지만 php에서는 배열이 그대로 채워져 있습니다! 모든 것이 논리적이고 이해할 수 있습니다. 배열에 요소를 추가하면(arr[] = x) 배열이 자동으로 증가하고 요소가 배열 끝에 추가됩니다. 그리고 직접 늘릴 필요도 없고 요소의 인덱스를 직접 지정할 필요도 없습니다. 여기서 우리는 완전히 불필요한 움직임을 수행해야 합니다.
차이가 분명하다...
제 생각에는 이것은 적어도 이상합니다)))
누가 OOP 사용을 막고 유사한 구문을 구현합니까?
#property strict/*
enum TestEnum
{
zero,
one,
two,
three,
four,
five,
six,
seven,
eight,
nine,
ten,
eleven,
twelve,
thirteen,
fourteen,
fitteen
};
*/template < typename T>
class RubbArray
{
private :
T data[];
protected :
void add(T d)
{
int n = ArraySize (data);
ArrayResize (data, n + 1 );
data[n] = d;
}
public :
T operator []( int i) const
{
return data[i];
}
RubbArray * operator <<(T d)
{
add(d);
returnGetPointer ( this );
}
T operator =(T d)
{
add(d);
return d;
}
voidoperator =( const RubbArray &d)
{
int i, n = d.size();
ArrayResize (data, n);
for (i = 0 ; i < n; i++)
{
data[i] = d[i];
}
}
T operator >>( int i)
{
T d = this [i];
ArrayCopy (data, data, i, i + 1 );
ArrayResize (data, ArraySize (data) - 1 );
return d;
}
int size() const
{
returnArraySize (data);
}
void print() const
{
int i, n = ArraySize (data);
string s;
for (i = 0 ; i < n; i++)
{
s += ( string )data[i] + "," ;
}
Print (s);
}
};
voidOnStart ()
{
//RubbArray<TestEnum> d;
RubbArray< double > d, d2;
d << 5 << 7 ;
d = 10 ;
d << 15 ;
d.print();
Print (d[ 1 ]);
double x = d >> 1 ;
d2 = d;
d2.print();
}
Alexander Puzanov : 언어 개발자인 Patamushta는 Syakh에서 자랐고, 이는 MQL이 하드코어 C 이미지에서 PHP/JS와 유사한 팝으로 전환되는 속도를 크게 늦춥니다. plebeian PHP에서는 새 값을 할당하는 것으로 충분하며 배열은 자체적으로 크기를 조정하며 MQL을 사용하면 코더의 중요성을 느낄 수 있습니다. 따라서 삽을 들고 선별된 전문가의 일원이 되는 것을 즐기십시오.
내 생각에 단순한 배열은 프로그래머의 지식 없이 "크기를 조정"해서는 안 됩니다. 이러한 동작이 필요한 경우 적절한 클래스를 작성해야 합니다. 그런 다음 문제없이 "스마트"배열을 사용합니다. 그리고 배열이 처음에 속하는 단순 구조 에는 "독립적인 결정 권한"이 없어야 합니다.
"프로그래머에 대한 지식 없이"는 작동하지 않습니다. "배열의 끝에 요소를 추가"(arr[] = x)하라는 명령을 내리는 것은 프로그래머입니다. 그리고 어레이에는 "독립적인 결정권"이 없습니다. 프로그래머의 명령을 실행해야만 크기가 증가하므로 프로그래머가 동일한 크기를 추적하지 않아도 됩니다. )))
내 경험에서 알 수 있듯이 프로그래머가 인덱스 20의 항목을 10개 요소가 포함된 배열에 쓰는 경우 이는 실수를 했을 가능성이 높으며 프로그램은 오류를 제공해야 하며 배열의 크기를 늘리면 안 됩니다. 의심스러운 행동.
이러한 모든 "크기 조정 배열"은 편의성보다 잠재적인 버그를 숨기는 데 더 많은 문제가 있습니다. 게다가 배열의 크기를 추적하지 않아도 되는 것 또한 잠재적으로 위험한 관행이며 수정하기 어려운 버그로 이어집니다.
P./S.: 여기서는 초기화되지 않습니다.
그리고 그들에게 무언가가 할당되었다는 것은 코드에서 볼 수 없습니다.
초기화는 다음 위치에 있을 수 있습니다.
코드 줄은 숨겨져 있습니다.
정확히))) 문제가 없습니다.
일반적으로 동적 배열 의 차원을 지속적으로 모니터링하는 것은 어떻게 든 불편합니다 ... 무게가 얼마인지 알아야합니다. 그럼 무슨 소용이 있겠습니까? ....
원칙적으로 이것은 이해할 수 있습니다. 이 배열이 자동으로 증가할 수 없는 이유가 명확하지 않습니까?
그렇다면 왜 이루어지지 못했을까요? 나는 이것을 생각해 내지 않았다))) 이것이 내가 동적 배열 을 사용하려고 시도한 방법입니다 ...
또한 색인을 추가로 저장해야합니다 ... 분수가 아닙니다 ...
누가 동적으로 증가하는 것이 불가능하다고 말했는가???
여기 당신을 돕기 위해
인증서 사용 방법에 대한 인증서를 작성해야 합니다)))))))))))))))))))))))))
원칙적으로 이것은 이해할 수 있습니다. 이 배열이 자동으로 증가할 수 없는 이유가 명확하지 않습니까?
그렇다면 왜 이루어지지 못했을까요? 나는 이것을 생각해 내지 않았다))) 이것이 내가 동적 배열 을 사용하려고 시도한 방법입니다 ...
또한 색인을 추가로 저장해야합니다 ... 분수가 아닙니다 ...
나는 당신이 이 코드에서 무엇을 하려고 하는지 이해하지 못했습니다.
여기에서 동적 배열의 용도와 사용 방법을 보여주는 작은 예를 스케치했습니다.
이 배열이 자동으로 증가할 수 없는 이유가 명확하지 않습니까?
이것은 원칙적으로 동적 배열 이 일반적으로 어떻게 채워져야 하는지에 대한 간단한 예입니다. 아주 오랫동안 C로 글을 쓰지 않아서 기억이 안 나지만 php에서는 배열이 그대로 채워져 있습니다! 모든 것이 논리적이고 이해할 수 있습니다. 배열에 요소를 추가하면(arr[] = x) 배열이 자동으로 증가하고 요소가 배열 끝에 추가됩니다. 그리고 직접 늘릴 필요도 없고 요소의 인덱스를 직접 지정할 필요도 없습니다. 여기서 우리는 완전히 불필요한 움직임을 수행해야 합니다.
차이가 분명하다...
제 생각에는 이것은 적어도 이상합니다)))
이것은 원칙적으로 동적 배열 이 일반적으로 어떻게 채워져야 하는지에 대한 간단한 예입니다. 아주 오랫동안 C로 글을 쓰지 않아서 기억이 안 나지만 php에서는 배열이 그대로 채워져 있습니다! 모든 것이 논리적이고 이해할 수 있습니다. 배열에 요소를 추가하면(arr[] = x) 배열이 자동으로 증가하고 요소가 배열 끝에 추가됩니다. 그리고 직접 늘릴 필요도 없고 요소의 인덱스를 직접 지정할 필요도 없습니다. 여기서 우리는 완전히 불필요한 움직임을 수행해야 합니다.
차이가 분명하다...
제 생각에는 이것은 적어도 이상합니다)))
누가 OOP 사용을 막고 유사한 구문을 구현합니까?
언어 개발자인 Patamushta는 Syakh에서 자랐고, 이는 MQL이 하드코어 C 이미지에서 PHP/JS와 유사한 팝으로 전환되는 속도를 크게 늦춥니다. plebeian PHP에서는 새 값을 할당하는 것으로 충분하며 배열은 자체적으로 크기를 조정하며 MQL을 사용하면 코더의 중요성을 느낄 수 있습니다. 따라서 삽을 들고 선별된 전문가의 일원이 되는 것을 즐기십시오.
"프로그래머에 대한 지식 없이"는 작동하지 않습니다. "배열의 끝에 요소를 추가"(arr[] = x)하라는 명령을 내리는 것은 프로그래머입니다. 그리고 어레이에는 "독립적인 결정권"이 없습니다. 프로그래머의 명령을 실행해야만 크기가 증가하므로 프로그래머가 동일한 크기를 추적하지 않아도 됩니다. )))
내 경험에서 알 수 있듯이 프로그래머가 인덱스 20의 항목을 10개 요소가 포함된 배열에 쓰는 경우 이는 실수를 했을 가능성이 높으며 프로그램은 오류를 제공해야 하며 배열의 크기를 늘리면 안 됩니다. 의심스러운 행동.
이러한 모든 "크기 조정 배열"은 편의성보다 잠재적인 버그를 숨기는 데 더 많은 문제가 있습니다. 게다가 배열의 크기를 추적하지 않아도 되는 것 또한 잠재적으로 위험한 관행이며 수정하기 어려운 버그로 이어집니다.