|
|
1
7
热释光;博士 类型化向量可以针对内存使用进行优化,但类型化哈希表通常是毫无意义的。 免责声明:这主要是基于直觉,它甚至不接近一个权威的答案。 类型化向量很有用,因为它们是在内存中连续存储数据的最实用的方法——如果您知道所有元素的类型(也正因为如此,还有大小),只需分配足够的内存就可以将所有元素存储在一起。正如您可能已经知道的,CL的位向量只是:一个最佳存储的、可单独访问的位的抽象。如果没有类型信息,则必须存储指向散乱的实际数据块的指针向量。 如果您熟悉如何实现一个简单的哈希表,那么您就知道类型信息在这里不太有用。将实际数据存储在表中(通常是指针向量)有点尴尬,这可能是因为处理哈希键冲突变得更加困难(否则最终会得到一个链表),或者是因为调整表的大小需要将所有数据复制到一个新表中,而不是仅仅更改几个指针。当然,调整向量的大小也需要复制所有内容,但这是在一个步骤中完成的,而对于哈希表,必须对每个元素执行一次,因为它们在表中的位置将发生变化。基本上没有什么好处。
|
|
|
Stephen · 在emacs中评估Lisp的正确方法是什么 1 年前 |
|
|
lightning_missile · 词法范围和共享对象 8 年前 |
|
|
Alexandru Popa · SBCL中奇怪的宏扩展错误 8 年前 |
|
|
Jacky · 编辑列表中的每个偶数索引元素 8 年前 |
|
|
HappyFace · lisp典型缩进约定背后的规则是什么? 8 年前 |