Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/clojure/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Data structures clojure中是否有支持重复元素和O(1)删除的内置数据结构?_Data Structures_Clojure - Fatal编程技术网

Data structures clojure中是否有支持重复元素和O(1)删除的内置数据结构?

Data structures clojure中是否有支持重复元素和O(1)删除的内置数据结构?,data-structures,clojure,Data Structures,Clojure,最近,我需要在clojure中实现一个特殊的集合,该集合可能有重复的元素,例如multiset #{1 2 3 4 1 2} 此外,还需要在O1时间内删除等于指定值的任意元素。例如,当我输入 (my-remove #{1 1 2 2 3 4} 2) 它应该返回{1 2 3 4}而不通过整个集合向量循环 我的问题是,clojure中是否存在满足这两个属性的内置数据结构。如果没有,是否有适当的替代解决方案来实现这一点?谢谢 值到其计数的映射?删除一个值将减少计数器?Clojure缺少标准的多集/

最近,我需要在clojure中实现一个特殊的集合,该集合可能有重复的元素,例如multiset

#{1 2 3 4 1 2}
此外,还需要在O1时间内删除等于指定值的任意元素。例如,当我输入

(my-remove #{1 1 2 2 3 4} 2)
它应该返回{1 2 3 4}而不通过整个集合向量循环


我的问题是,clojure中是否存在满足这两个属性的内置数据结构。如果没有,是否有适当的替代解决方案来实现这一点?谢谢

值到其计数的映射?删除一个值将减少计数器?

Clojure缺少标准的多集/包。你可以尝试-未经测试。谢谢!但有没有一种直观的方法可以做到这一点?不知道你所说的直观是什么意思;默认情况下不支持此数据结构,因此您必须包装标准哈希映射,并编写自己的contains/add/remove函数。这似乎是在@Thumbnail提到的multiset库中完成的。我刚才在github上查看了multiset。你说得对。。。我几乎没有clojure编程的经验,我认为这个解决方案似乎是最可行的。无论如何,谢谢你的解释!