微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何访问数组中的结构元素

如何解决如何访问数组中的结构元素

我想为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

中的huffnode结构的项目槽的值
; 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 举报,一经查实,本站将立刻删除。