Genel sınıflar kütüphanesi - hatalar, açıklamalar, sorular, kullanım özellikleri ve öneriler - sayfa 2
Ticaret fırsatlarını kaçırıyorsunuz:
- Ücretsiz ticaret 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
ortalama O(1) süresi, O(n)'den daha kötüdür ve performans, karmaya büyük ölçüde bağlıdır.
O(n) ise kesinlikle alındadır.
6 Aralık 2017'den itibaren, MetaTrader 5'in standart dağıtımı, verileri depolamak ve almak için verimli algoritmalar uygulayan Genel sınıfları içermeye başladı. Bu konu, bu sınıfları, onlarla çalışma örneklerini ve çalışmalarını geliştirmek için önerileri açıklamak için oluşturuldu.
Genel nedir? Jenerikler, özel veri türlerini depolayabilen özel şablon sınıflarıdır. Bu durumda, yüksek performansın elde edilmesi nedeniyle derleme sırasında tür tanımlaması gerçekleşir.
Neden Genel? Tipik olarak, acemi programcılar yalnızca bir tür koleksiyona aşinadır: bir dizi. Ancak bir diziyle çalışmanın verimsiz olduğu birçok görev vardır. Bir milyon benzersiz tanımlayıcı dizimiz olduğunu hayal edin, örneğin bin sipariş. Bu bin siparişte N numaralı bir sipariş olup olmadığı nasıl kontrol edilir? Genel sınıflardan birini kullanırsanız, bu görev, aramanın gerçekleştirileceği öğelerin sayısına bağlı olmayacak şekilde sabit bir zamanda neredeyse anında tamamlanabilir. Genel koleksiyondaki doğru algoritmanın, programcı tarafından icat edilen algoritmadan daha hızlı olabileceği başka görevler de vardır.
Konu ilginç.
Şahsen bu konudaki görüşüm, programlamada diziler içindeki verileri doğru bir şekilde organize edebilmek ve bu dizilerle döngüler halinde doğru çalışabilmekten daha etkili bir şey olamaz. Bu, temellerin temelidir. Diğer tüm çözümler, ek bilgisayar zamanını alan ve ek yük oluşturan türevlerdir .
Global diziler, yerel diziler, döngüler ve fonksiyonlar. Herşey.
Bu araçlara virtüöz olarak hakim olan, verimlilik açısından herkesin önünde olacaktır.
BENİM NACİZANE FİKRİME GÖRE.
İsimleri basitleştirmeyi öneriyorum - onları daha mantıklı hale getirmek için. Örnek, mql5'te CarrayList hala Array veya List'tir, her ikisinin de bir uygulaması var mı?
Bütün bunlar soruları ve yanlış anlamaları kışkırtır. IMHO, C # veya Java altında değil, stl altında biçmek gerekir. Veya C'den önce kaldırın, sadece ArrayList olsun.
...
Ve tam tersine, C# altındaki zakoları gerçekten seviyorum.
çok net yazılmış
Neyin vurgulandığını görün.
Mümkünse, örneğin binlerce işlem arasında arama yapmakla ilgili örnekler.
TAMAM.
Konu ilginç.
Şahsen bu konudaki görüşüm, programlamada diziler içindeki verileri doğru bir şekilde organize edebilmek ve bu dizilerle döngüler halinde doğru çalışabilmekten daha etkili bir şey olamaz. Bu, temellerin temelidir. Diğer tüm çözümler, ek bilgisayar zamanını alan ve ek yük oluşturan türevlerdir .
Global diziler, yerel diziler, döngüler ve fonksiyonlar. Herşey.
Bu araçlara virtüöz olarak hakim olan, verimlilik açısından herkesin önünde olacaktır.
BENİM NACİZANE FİKRİME GÖRE.
Peter, yavaşla lütfen. Burası, soyut ifadeleriniz değil, yeni SB sınıflarının tartışılacağı yerdir. Lütfen konuyu saptırma. Teşekkür ederim.
Peter, yavaşla lütfen. Burası, soyut ifadeleriniz değil, yeni SB sınıflarının tartışılacağı yerdir. Lütfen konuyu saptırma. Teşekkür ederim.
Fikrimi ifade etme hakkım var mı? Yoksa senin için dayanılmaz mı?
Fikrimi ifade etme hakkım var mı? Yoksa senin için dayanılmaz mı?
Fikriniz genellikle üç ciltlik "Savaş ve Barış" incelemesidir. Bu nedenle, kaçınmak daha iyidir.
Dikkat - bu moderatörden gelen ikinci istek.
O(n) ise kesinlikle alındadı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.