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