dijkstra 的书中对 array 这种对象进行了建模. 除去定义了一些运算外, 里面提到了一句.
不应该将 array 看作一堆数据连续存储, 而是看作一个 Fn(u32) -> T

深以为然, 下面是一些经典应用.
dfs 时的 vis[x][y]
Hashmap<u32, T> 的快速特化版.
以及大部分 Vec::with_capacity
还有 vec![0; 100010]

而连续存放生成的数据应该用 generator + yield + collect

再扯一句 table-driven
一个经典优化是, 会把 switch-case 优化成跳转表. 即地址的 offset
Hashmap<u32, Fn(T...) -> V> , aka &[Fn(T...) -> V]
 
Loading...
Steven Lynn
Steven Lynn
喂马、劈柴、周游世界
最新发布
我与 Dify 的半年
2025-3-9
我的2022年终小结
2024-11-9
记录雅思考试经历与一点学习心得
2024-11-9
Hackergame 2024 思路小结
2024-11-9
黑客松、日本、入职:我的2024下半年的总结
2024-11-9
NotionNext:基于Notion和NextJS的开源博客
2024-11-9