Rust中的侵入式算法等价物

Der*_*k T 10 c++ rust

我正在研究Rust编程语言并试图将我的C++思想转换为Rust.常见的数据结构,如列表和树,以前用C++中的指针实现,我不确定如何实现Rust中的确切等价物.我感兴趣的数据结构是侵入式算法,类似于Boost侵入式库中的内容,这些算法在嵌入式/系统编程中很有用.

Rust(Dlist)中的链表示例非常简单,但它使用容器类型,其中实际类型在容器内.我正在寻找的侵入式算法有点反过来:你有一个主要类型,其中列表节点被插入或继承.

此外,Linux中着名的链表也是列表数据在结构成员中的另一个例子.这就像侵入算法的Boost成员变体.这使您可以多次在多个列表/树中使用您的类型.如何使用Rust?

所以我不确定如何将这些设计模式转换为我习惯于C/C++的Rust.有谁成功了解这个?

qzn*_*znc 1

Rust 希望您考虑所有权和生命周期。谁拥有这些成员以及他们的寿命有多长?

在Dlist的问题中,答案是“容器”。对于侵入式算法,没有明确的答案。一个列表的成员可以在另一个列表中重用,而其他列表则随第一个列表一起销毁。最终,您可能想要使用引用计数(std::sync::Arc)。