Ben 'C # hakkında okuma s edildi ImmutableSortedDictionary
içinde System.Collections.Immutable
ve benim programda uygulamak konusunda düşünme. C ++ 'ı çok seviyorum lower_bound
ve upper_bound
( buraya bakın ) ve menzil aramaları için bir şey görmeyi bekliyordum. Bununla birlikte, benzer yöntemler dokümantasyonda garip bir şekilde yok gibi görünmektedir . Bir şey mi kaçırıyorum? Yoksa MS, sıralanmış aralıklara etkili bir şekilde erişmeden gerçekten sıralanmış bir sözlük sağlıyor mu? Tam IEnumerable
olarak bir uzantı yöntemi söylemek gibi anahtarlar üzerinde bir şey yapabileceği gibi görünmüyor , bu yüzden biraz şaşkınım doğrudan koleksiyon tarafından sağlanan bir şey görmüyorum.
ImmutableList<T>
Sınıf da AVL ağacı olarak uygulanmaktadır. Gönderen kaynak kodu :/// The root node of the AVL tree that stores this set.
ImmutableList<T>
bir AVL ağacı tarafından desteklenmektedir) ImmutableArray<T>
(bir dizi tarafından desteklenmektedir ) üzerindeki avantajları aşağıda verilmiştir . Değişmez listeyi kullanma nedenleri: 1) Verilerin güncellenmesi yaygındır veya öğe sayısının az olması beklenmemektedir. 2) Koleksiyonun güncellenmesi, içeriği yinelemekten daha fazla performans açısından önemlidir.
IBinarySearchTree<K,V>
uyguladığı şey beklediğim şeye daha yakın görünüyor. Acaba daha fazla uğraştı mı?