[原创]给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
大哥感谢你了。
非常好的好人,免费发布。
页:
[1]