Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我使用哈希表作为多重映射,我想删除任何以前的绑定。Hashtbl.remove 只是删除当前绑定。我正在考虑删除哈希 xy 之类的东西,它删除了 y 到 x 的绑定。如果有多个绑定 xy 它应该删除其中一个。我有一些工作代码,但它太复杂和太慢(包括 for 循环等)
我希望它像这样工作:
Hashtbl.find_all 哈希 1 ;; 返回 [1;2;3;3;4]
删除哈希 1 3 ;;
Hashtbl.find_all 哈希 1 ;; 返回 [1;2;3;4]
我想说这并不是真正Hashtbl的设计使用方式,所以它不会特别方便。没有Hashtbl删除或添加键的多个绑定的功能,因此您必须一次添加和删除它们。您的迭代解决方案可能与您预期的一样好。
Hashtbl
显式处理多个绑定可能会更好,即将每个键绑定到显式(多)值集。在对绑定进行更改时,这将比线性行为更好。