繁体   English   中英

Rust 将 vec 重塑为 vec<vec>

[英]Rust reshape a vec into vec<vec>

let a: Vec<f32>;
let mut new: Vec<Vec<f32>>;

假设a的大小为n * n 如何将其转换为 2D 矢量new 显然,简单地迭代向量并手动完成是非常幼稚的。 有什么方法可以快速高效地重塑?

不。如果您来自 numpy 或类似工具,numpy 将所有数组存储为一维并执行算术以使其看起来是多维的,因此高性能地重塑数组确实只涉及在某处更改索引。 但是 Rust 中的Vec是一维结构,而Vec<Vec<...>>是具有完全不同结构的嵌套数据类型,因此您实际上必须将所有元素复制到新向量中。 在这种情况下,迭代元素是正确的方法。

我赞赏您为找到更好的方法所做的努力,但在这种情况下,我相信答案就是自己动手。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM