是否有提供数据结构的库,它保留项目的顺序并且不包含任何重复项?这种数据结构是否存在适当的名称?
我希望它表现得像一个列表,nub
在每次操作之后都应用。当然,我不希望它被无效地实施。
是否有提供数据结构的库,它保留项目的顺序并且不包含任何重复项?这种数据结构是否存在适当的名称?
我希望它表现得像一个列表,nub
在每次操作之后都应用。当然,我不希望它被无效地实施。
这是一个解决方案:
使用带有幺半群的手指树Set
作为度量。然后在插入时,首先使用measure
完整的手指树检查成员资格。这给了你O(log(n))
缺点和 snoc,O(1)
删除。
这是另一个解决方案:
将普通列表与普通列表配对Set
并获得基本相同的效果。你会得到更好的常数因子,但O(log(n))
会删除。
这是一个问题:您希望在插入重复项时发生什么?是否应该保留现有职位?新职位?优先队列可能接近您想要的,具体取决于。
OSet
fromordered-containers
似乎做你想做的事。