2
A
回答
3
我不认为有更好的方法(假设你可以处理键/值冲突)。在向表中添加新值(或更新/删除现有值)时,稍微好一点的方法可能是存储交换的值,但总体思路是相同的。
+3
当将两个方向放入同一个表格时,最好在添加/移除键/值对时立即更新反转的对。如果你不这样做,然后用'pairs'迭代来添加反函数,那么事情就会中断。 (你正在向表中添加条目,这可能会触发一个调整大小,这可能会改变底层存储条目的顺序 - 所以'next' /'pairs'会做一个“醉汉漫步”,跳过元素或遍历它们几次如果你忘记了这些,你可以得到一些丑陋的难以发现的错误。) – nobody
相关问题
- 1. clojure中的双向地图?
- 2. Riak中的双向地图
- 3. Qt中是否有任何双向(双向)地图?
- 4. NetworkX中的双向图形
- 5. 角谷歌地图 - 双向数据在地图控制
- 6. C#中的双向/双向字典?
- 7. 双向图算法
- 8. 轨道双向图
- 9. java中的并发双向图
- 10. 销毁双向图中的加权边
- 11. 对于双地图
- 12. 双查找地图
- 13. 中的双向test_data.yml
- 14. iphone中的地图方向
- 15. 双向到VHDL双向
- 16. OneToOne双向双向关联
- 17. 双向图,最短连接?
- 18. 双向电力在图
- 19. Java中的双面(双向)列表
- 20. subquadratic时间有向图中的双向生成树
- 21. 如何在谷歌流量这样的小型双向街道上绘制双向交通地图?
- 22. C++制作地图双对
- 23. 比较双打地图
- 24. 双击地图注释
- 25. 双地图结构实现?
- 26. 从地图片段中捕获双击
- 27. 使用双向链表实现一个地图
- 28. 谷歌地图回调后,Angular2双向绑定停止工作
- 29. Bing地图双向绑定到Center属性。动画问题
- 30. Lua中的反向字符串?
为什么你需要这样做?还有其他方法,例如,您可以将两个表(左侧和右侧)封装在具有metatable的表中,并提供确保两者一致性的方法。或者如果你不需要在右边快速查找,则可以使用一个表格 –