baitang36 发表于 2022-3-3 10:41:00

[原创]给autolisp增加一种数据类型vector

vector是自动桌子没有公开的一种数据类型,它跟表有些类似,但更节省内存,操作起来更快,它还可以和表相互转换。
lisp表的数据结构是链表,它需要从头开始遍历,因此操作速度慢。vector没有这限制,可以从任何位置开始操作,因此速度更快。
vector一般翻译成向量,感觉不太确切。
princ一个vector会类似这样显示: #4(1 2 3 4),表示这个vector有4个元素,元素的列表在括号内。
经过研究,我基本弄明白了它的机理,发在这里大家一起试验吧。
我写了一个小程序syz-vector.fas,加载后就可以对vector进行操作了。
几个相关函数:
vector    建立一个vector
vector-length获取 vector的长度
list->vector    表转换成vector
vector->list   vector转换成表
vector-elt   获取vector的某个元素
vector-eltlist aa)
(1 2 3 4 5)
命令: (list->vector '(2 3 4 5))
#4(2 3 4 5)
命令: (vector-elt aa 3)
4
命令: (vector-eltsyz-vector.fas

baitang36 发表于 2022-7-13 07:53:00


大哥感谢你了。

f4800 发表于 2022-3-7 08:45:00


非常好的好人,免费发布。
页: [1]
查看完整版本: [原创]给autolisp增加一种数据类型vector