Genel sınıflar kütüphanesi - hatalar, açıklamalar, sorular, kullanım özellikleri ve öneriler - sayfa 2

 
birleştirici :
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.

 
Vasili Sokolov :


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.

 
Ivan Gurov :

İ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.

 
fxsaber :

çok net yazılmış

Neyin vurgulandığını görün.

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.
 
Vladimir Karputov :
Mümkünse, örneğin binlerce işlem arasında arama yapmakla ilgili örnekler.

TAMAM.

 
Peter Konow'un fotoğrafı.

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.

 
Artyom Trishkin :

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ı?
 
Peter Konow'un fotoğrafı.
Fikrimi ifade etme hakkım var mı? Yoksa senin için dayanılmaz mı?
hayır. çünkü bu görüş zaten 100 defa dile getirildi ve burada yine kendi semaveriyle oop kötü vb. zaten yeterince duydum, bu görüşten bıktım.
 
Peter Konow'un fotoğrafı.
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.

 
fxsaber :

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.

Neden: