如何解决如何访问数组中的结构元素
我想为huffnode结构创建新节点,
(defstruct huffnode
item
left
right
)
(setq huffroot (make-huffnode :item huffnode-item (aref arr3 (- (length arr3) 1))
:left (aref arr3 (- (length arr3) 1))
:right (aref arr3 (- (length arr3) 1))))
我需要从arr3中获取存储huffnode节点的元素,如何访问它们的数据,并将其复制到huffroot数据中
解决方法
您的问题在语法上很混乱,因此不清楚您要问什么。
您使用aref
访问数组的元素,并使用accessors
访问结构的插槽(默认情况下)是根据结构名称和插槽名称自动生成的,例如(huffnode-item x)
获取(或用作setf
集的目标时)存储在x
; SLIME 2.26
CL-USER> (defstruct huffnode item left right)
HUFFNODE
CL-USER> (defvar *huffroot* (make-huffnode :item "foo" :left nil :right nil))
*HUFFROOT*
CL-USER> (setf (huffnode-item *huffroot*)
(aref arr3 0)
(huffnode-left *huffroot*)
(aref arr3 1)
(huffnode-right *huffroot*)
(aref arr3 2)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。