在Rust中创建指定大小的零向量
大家好!我刚开始学习Rust,遇到了一个问题。我需要创建一个指定大小的向量(Vec),并用零填充。在其他语言中,比如Python,我只需写 `[0] * n`,而在C++中则是 `std::vector v(n, 0)`。但在Rust中,我找不到直接对应的写法。
我尝试了几种方法,但都不行,或者出现编译错误。例如:
```rust
let v = vec![0; 5]; // 这对Copy类型有效,但我需要f64
let v2: Vec = vec![0; 5]; // 错误:期望f64,找到整数
```
我也尝试用 `Vec::with_capacity(5)` 创建向量,然后在循环中填充,但这似乎太冗长了。有没有像其他语言那样更优雅的方式?我需要创建一个包含1000个 `f64` 类型元素的向量,全部为零。提前感谢帮助!
<<>>
使用vec!宏并显式指定类型
你代码的主要问题是Rust是强类型语言,字面量 0