[英]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.