Genel sınıflar kütüphanesi - hatalar, açıklamalar, sorular, kullanım özellikleri ve öneriler - sayfa 4
Alım-satım fırsatlarını kaçırıyorsunuz:
- Ücretsiz alım-satım uygulamaları
- İşlem kopyalama için 8.000'den fazla sinyal
- Finansal piyasaları keşfetmek için ekonomik haberler
Kayıt
Giriş yap
Gizlilik ve Veri Koruma Politikasını ve MQL5.com Kullanım Şartlarını kabul edersiniz
Hesabınız yoksa, lütfen kaydolun
bağlamı anlamıyorsun. Farklı dallardan geçerseniz ve delil olmadan saçmalık iddiasında bulunursanız, o zaman evet, bu doğrudan bir yasaklama yoludur. İfadelerinizi kaynak koduyla yedeklemeye hazırsanız - hoş geldiniz. Vladimir sana bu yüzden bir uyarı verdi, çünkü. kendisi kaynak kodunu sever ve hatta bazen sağlanmasını gerektirir. Örnek için kendi şubelerine bakın.
Oldukça doğru. Peter'dan bir kod varsa, performansı karşılaştırmak çok güzel olacak.
Baktı. Her şey doğru yazılmış. Ayrıca, sözlükte bir öğe aramasının ortalama O (1) süresinde, yani anında gerçekleştirildiği söylendi.
Kulağa mantıksız gelen bu. Bin sipariş arasında en fazla 10 adet çek gereklidir. Ama kesinlikle ortada biri değil. Ortalama arama süresinin her zaman eleman sayısına bir bağımlılığı vardır.
Numara. O(n) çok nadir durumlarda karma çarpışmalardan kaynaklanır. Bunlar, optimal algoritma için karmaşıklık tahminleridir. Çarpışma sayısı bellek yüküyle ilgilidir
Olağan durumda, aslında aramak gerekli değildir, çünkü hash'i hesapladıktan sonra, esasen istenen elemanın yerini zaten biliyoruz.
Hatırlanacağı kadarıyla, hash sözlüğünün boyutunu, beklenen öğelerin karesi olarak seçmek en uygunudur.
Çarpışmalara iyi bir örnek, doğum günü paradoksu.
https://ru.wikipedia.org/wiki/
Olağan durumda, aslında aramak gerekli değildir, çünkü hash'i hesapladıktan sonra, esasen istenen elemanın yerini zaten biliyoruz.
Kulağa inanılmaz geliyor. Ama örnekleri bekleyeceğim, sonra uygulamanın sakatatlarına bakacağım.
Bir yandan harika ama diğer yandan MQL'de diğer dillere kıyasla çok şey olduğunu hatırlıyoruz: çoklu kalıtım yok, foreach, yeild return, lamb, ...
IEnumerable'ın söz konusu olmadığı ortaya çıkıyor.
O zaman IEnumerable olmadan C# kapsayıcılarını kullanmak nasıl uygun olur?
Eski C++ algoritmaları kalır ve işlev işaretçileri yerine arabirimler kullanılır.
Sonunda, bir karmakarışık elde ederiz - C # ve C ++.
Karışıklık, her şeyi karıştıran yanlış isimler yüzünden ortaya çıktı.
C++ altında biçerlerse her şey netleşir.
PS Ve neden çoklu kalıtım yok? Bunu mql5'te yazamaz mıyım?
Anladığım kadarıyla sorun yok.
Bu nedenle, C/C++ ile bitirdik. Normal isimler yaparsanız. :)
Oldukça doğru. Peter'dan bir kod varsa, performansı karşılaştırmak çok güzel olacak.
Her zaman kodların dilini konuşmaya hazırım. Yazarın bana bunu kanıtlamamı önermesi yeterliydi ve hemen işe koyulacaktım.
Yazarın sorunu sunmasına izin verin ve çözümlerimizi verimlilik açısından karşılaştıralım.
Konu sabitlenmiştir. Bunu şu şekilde görüntüleyebilirsiniz:
ve konunun sabitlendiğini hemen görebilirsiniz:
Kulağa inanılmaz geliyor. Ama örnekleri bekleyeceğim, sonra uygulamanın sakatatlarına bakacağım.
Beklenen öğe sayısına sözlük boyutu izin veriyorsa, hash'ler ortalama olarak O(1)'dir.
Ve sonra, çarpışmaları çözmek için uygulamalara bir bağımlılık var, bu bir liste, hatta belki bir alt hash aracılığıyla olabilir ....
Çarpışmalara iyi bir örnek, doğum günü paradoksu.
Wiki'de okuyun. Sezgisel akıl yürütmenin mantığını hiç anlamadığınız durum.
Konu sabitlenmiştir. Bunu şu şekilde görüntüleyebilirsiniz:
ve konunun sabitlendiğini hemen görebilirsiniz:
Teşekkür ederim. Bu konuyu ilginç hale getirmeye çalışalım. Konuya olan talebi şimdiden görüyorum :))