gpt4 book ai didi

data-structures - Rust 自定义数据类型中的大小类型参数?

转载 作者:行者123 更新时间:2023-11-29 08:30:06 24 4
gpt4 key购买 nike

<分区>

我正在尝试实现一个 B-Tree 类以在 Rust 中进行练习,它可以在 b 的各种不同值处实例化。 .我尝试了以下代码:

struct BTreeNode<T, b> {
vals: [Option<T>; b-1],
children: [Option<Box<BTreeNode<T, b>>>; b],
}

struct BTree<T, b> {
root: Option<BTreeNode<T, b>>,
}

但是编译器(合理地)提示

src/two_three_tree.rs:2:15: 2:16 error: unresolved name `b` [E0425]
src/two_three_tree.rs:2 vals: [Option<T>; b-1],
^
...
src/two_three_tree.rs:2:15: 2:16 error: array length constant evaluation error: non-constant path in constant expression [E0250]
src/two_three_tree.rs:2 vals: [Option<T>; b-1],
^
...

看起来标准库中的 B-Tree 类只使用了一个常量(这是一个合理的选择,因为 B-Tree 通常意味着最大限度地利用缓存;我只是想在一个更一般的方式)。在当前版本的 Rust 中这可能吗?如果没有,它会成为可能吗?

(我想通过编写 BTree<u32, 3> 创建一个 2-3 的 u32 树,或者通过编写 BTree<u32, 4> 创建一个 2-3-4 的 u32 树)

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com