我正在寻找一个SortedBag的C实现,我的用例如下:我有一系列使用自定义IComparer实现进行估计和排序的对象,问题是完全不同的对象可能会产生相同的估计,当我试图使用C的默认排序集合(如SortedSet)时,SortedDictionary实现中,我无法以相同的估计值向这些集合插入多个对象,因为集合认为这些对象相等,并拒绝插入它们。我需要一个sortedbag实现,其中有o(log(n))用于插入和移除,因为我正在非常积极地进行插入/移除。
有人偶然发现了这样的实现吗?
谢谢您!
编辑
似乎我在寻找优先级队列而不是sortedbag…

最佳答案

The C5 Generic Collection Library中的TreeBag<T>应该在insert和remove中都是O(log(n))的,否则就有带OrderedBag<T>Wintellect's Power Collections for .NET了。

07-26 03:50