MT5'te dizilerin zorla temizlenmesi? - sayfa 3

 
Vladimir Karputov :

Dizi başlatma tamamen kod yazarının hatasıdır. Hataları kendinizde arayın. Algoritmanızı yeniden oluşturun.

Hata yok.

Bildirildiklerinde sıfırlı dizilerin otomatik başlatılması kaldırılmıştır. Ne için? - Bilinmeyen. Bu nedenle, kullanmadan önce diziyi kendiniz temizlemelisiniz. Bu her zaman uygun değildir.

 
Реter Konow :

Hata yok.

Bildirildiklerinde sıfırlı dizilerin otomatik başlatılması kaldırılmıştır. Ne için? - Bilinmeyen. Bu nedenle, kullanmadan önce diziyi kendiniz temizlemeniz gerekir. Bu her zaman uygun değildir.

Ve nasıl istedin? Dikkatsizce "4" tarzında yaz? Var olmayan dizinleri akılsızca sorgulamak mı? Dizilerinizi sizin için başlatacak olan "amca" yı mı umuyorsunuz?

MQL5, alışılmış olmamak için bu tür amatörleri güçlü ve hemen ellerine vurur. Hemen doğru yazmayı öğrenin: Bir dizi oluşturduysanız, tüm dizinleri atlayın ve doldurun. Hepsini bir kerede doldurmak istemiyorsanız - dizinin boyutunda bir ön artışla adım adım doldurun.

Genel olarak hemen normal bir algoritma yapın ve sorunlarınızı başkalarına kaydırmayın.

 
Vladimir Karputov :

Ve nasıl istedin? Dikkatsizce "4" tarzında yaz? Var olmayan dizinleri akılsızca sorgulamak mı? Dizilerinizi sizin için başlatacak olan "amca" yı mı umuyorsunuz?

MQL5, alışılmış olmamak için bu tür amatörleri güçlü ve hemen ellerine vurur. Hemen doğru yazmayı öğrenin: Bir dizi oluşturduysanız, tüm dizinleri atlayın ve doldurun. Hepsini bir kerede doldurmak istemiyorsanız - dizinin boyutunda bir ön artışla adım adım doldurun.

Genel olarak hemen normal bir algoritma yapın ve sorunlarınızı başkalarına kaydırmayın.

Dizinin ön temizliği - neredeyse hiç hataya yol açmaz. O rahat.

MT5'te - bir dizi bildirdi , çöpleri temizledi, sonra - kullanın.

MT4'te - bir dizi bildirdi ve onu kullanın.

Bütün fark bu.

Dizileri temizleme görevini neden kullanıcıya kaydıralım?

Profesyonelliğini arttırır mı? Belki. Ama kesinlikle olumlu duygular katmayacak.)) O halde olumsuzluğum için kusura bakmayın. Birkaç gün ne olduğunu anlayamadım. Haşlanmış.))

 
Hız nedeniyle otomatik temizleme kaldırıldı.
 
Реter Konow :

Hata yok.

Bildirildiklerinde sıfırlı dizilerin otomatik başlatılması kaldırılmıştır. Ne için? - Bilinmeyen. Bu nedenle, kullanmadan önce diziyi kendiniz temizlemeniz gerekir. Bu her zaman uygun değildir.

Piotr, bu prosedür zaman aldığı için başlatma kaldırıldı ve C++ ve MQL5'te kullanmadığınız bir şey için ödeme yapmak alışılmış bir şey değil. Dizi başlatma her zaman gerekli olmaktan uzaktır, örneğin diziyi hemen gerekli değerlerle doldurursanız buna gerek kalmaz.

Ve hepsi aynı, vporolarınızdan hangi karmaşıklıkta olduğu belli değil. Sonuçta, dizinizin boyutunu her zaman bilirsiniz. Bir diziyi yeniden düzenliyorsanız, ona ne kadar fazla eleman eklediğinizi her zaman bilirsiniz. Bu nedenle, ArrayResize'ın ardından ArrayInitialize işlevini çağırmak zor değildir.

Bu kadar fazla noktayı hesaba katmanız gerektiğinde muhtemelen insanların MQL5'i nasıl kullandığını soracaksınız? Cevap vereceğim: MQL5'i iyi düzeyde kullananlar standart kütüphaneyi kullanırlar, bu yüzden tüm bu önemsiz şeyleri düşünmezler, dizi başlatma veya yeniden eşleme ile ilgilenmezler, sadece yeni değerler eklerler. Ancak bir dartanyan olduğunuz ve böyle bir şeyi tanımadığınız için, tek bir seçeneğiniz vardır: ArrayInitialize kullanarak dizilerinizin düşük düzeyde özenli yönetimi.

 
Vasiliy Sokolov :

1. Piotr, bu prosedür zaman aldığından başlatma kaldırıldı ve C++ ve MQL5'te kullanmadığınız bir şey için ödeme yapmak geleneksel değildir. Dizi başlatma her zaman gerekli olmaktan uzaktır, örneğin diziyi hemen gerekli değerlerle doldurursanız buna gerek kalmaz.

2. Ve aynı şekilde, sorunuzdan karmaşıklığın ne olduğu açık değil. Sonuçta, dizinizin boyutunu her zaman bilirsiniz. Bir diziyi yeniden düzenliyorsanız, ona ne kadar fazla eleman eklediğinizi her zaman bilirsiniz. Bu nedenle, ArrayResize'ın ardından ArrayInitialize işlevini çağırmak zor değildir.

3. Dikkate alınması gereken çok fazla ekstra şey varken insanların MQL5'i nasıl kullandığını soruyor olabilirsiniz? Cevap vereceğim: MQL5'i iyi düzeyde kullananlar standart kütüphaneyi kullanırlar, bu yüzden tüm bu önemsiz şeyleri düşünmezler, dizi başlatma veya yeniden eşleme ile ilgilenmezler, sadece yeni değerler eklerler. Ancak bir dartanyan olduğunuz ve böyle bir şeyi tanımadığınız için, tek bir seçeneğiniz vardır: ArrayInitialize kullanarak dizilerinizin düşük düzeyde özenli yönetimi.

Vasili, nokta nokta:

1. Mantık, dizileri temizleme prosedürünün derleyici tarafından derleme aşamasında bir kez gerçekleştirilmesini belirtir. Kaldırılmışsa, derleyicinin hızını programcının rahatlığına zarar verecek şekilde artırmak istediler, ancak seviyesini artırmak mümkün.

2. Çekirdek boyutu Cybcode'a bağlıdır. Daha fazla eleman, daha büyük çekirdek dizisi. Bu nedenle, çekirdek dinamiktir. Etaplar halinde inşa ediliyor. Hücrelerinde çöp varsa, farklı yapım aşamalarındaki işlevlerde bir hücreden diğerine yapılan başvurular program çökmesine neden olur.

MT4'te böyle bir sorun yoktu çünkü başlatılmamış hücreler rastgele değerler değil sıfırlardı. Kısacası, teknolojim doğal olarak saf bir diziyle çalışmalı.

3. Dizilerin zorla özel olarak temizlenmesine karşı değilim, sadece dediğim gibi, kaynadı. Birkaç gün boyunca neden her şeyin çöktüğünü anlamadım. Benim hakkımda olduğunu düşündüm, ortaya çıktı - olanaklardan biri benden alındı.))


Kusura bakmayın alışacağız.


not. Bu arada, kodumun kesinlikle çapraz platform olduğunu söylemeliyim. Bu temizlik dışında hiçbir şeyi değiştirmeme gerek yok!

 
Реter Konow :

Hata yok.

Bildirildiklerinde sıfırlı dizilerin otomatik başlatılması kaldırılmıştır. Ne için? - Bilinmeyen. ...

Hızlı program yazabilme. Başlatma her zaman gerekli olmaktan uzaktır, daha sık olarak dizi hemen verileriyle doldurulur.

 
Dmitry Fedoseev :

Hızlı program yazabilme. Başlatma her zaman gerekli olmaktan uzaktır, daha sık olarak dizi hemen verileriyle doldurulur.

TAMAM. Açık.

 
Реter Konow :

... Hücrelerinde çöp varsa, farklı yapım aşamalarındaki işlevlerde bir hücreden diğerine yapılan başvurular program çökmesine neden olur.

Peter, özün çöpse bundan sadece sen sorumlusun. MQL5, MQL4'ün aksine, kullanıcının ne istediğini anlamaya çalışmaz ve haklı olarak öyledir.

 
ZY Bence Peter, kaderin iradesiyle bir kerede JavaScript ile ilgili bir foruma getirilmiş olsaydınız çok daha şanslı olurdunuz. Bu lezzetlerden bir vagon ve küçük bir araba var. Büyük zirvelere ulaşırdım!