2014-09-03 22 views
5

std::vector gibi dizinlenmiş bir C++ kapsayıcı sınıfı arıyorum, ancak hızlı ekleme, silme ve indeksleme var. Örneğin, bir temel dengeleme ağacı ile uygulanan bir vector arayüzü, O (logN) ekleme/çıkarma ve O (logN) indekslemesine de sahip olacaktır.Hızlı kesici uçlar ve indeksli kutu?

Net olmak gerekirse: std::map<int, T>'u arıyorum. N dizinindeki bir öğenin eklenmesi, std::map<int, T> ile durum olmayacak olan dizideki tüm sonraki öğelerin dizinlerini artırmalıdır.

AVL Array bulduklarım tam olarak ne arıyorum. Doğru arayüze sahip, ancak başka seçenekler olup olmadığını görmek istiyorum.

Başka (üretim kalitesi) uygulamalarını biliyor musunuz? Belki daha popüler bir şeydir (güçlendirmek türden bir şey var mı?). Daha küçük bir bellek alanı olan bir şey mi? (AVL Diziliminde bir işaretçiyi tutan bir düğüm, makinemde 64 bayttır.)

+0

Eğer rastgele erişim gerektiren neden detaylandırabileceğiniz? – BeyelerStudios

+1

Bu konu dışı görünüyor - yazılım/kütüphane önerileri arıyor. –

+1

Daha az (veri yapısı açısından) ne istediğinizi yapan bir şey olduğunu düşünmüyorum, bu yüzden sonraki/önceki ve 3 ana sayfalar için ebeveyn/sol/sağ artı orijinal işaretçi için 2 ptr gerekir. Toplamda, 64 bit ortamlarda 6 işaretçi = 48 bayt. Bellek ayak izi açısından en azından bunu başarabilirsiniz (bence). – mostruash

cevap

İlgili konular