小编Dra*_*gon的帖子

克隆迭代器是否会复制整个底层向量?

我想多次迭代一个向量:

let my_vector = vec![1, 2, 3, 4, 5];
let mut out_vector = vec![];
for i in my_vector {
    for j in my_vector {
        out_vector.push(i * j + i + j);
    }
}
Run Code Online (Sandbox Code Playgroud)

j 循环存在“移动后此处使用的值”错误。我知道我可以&在两个my_vectors 之前放置一个并借用向量,但是有不止一种方法来做事情是很好的。我也想要一点见解。

或者,我可以写以下内容:

let i_vec = vec![1, 2, 3, 4, 5, 6];
let iterator = i_vec.iter();
let mut out_vec = vec![];
for i in iterator.clone() {
    for j in iterator.clone() {
        out_vec.push(i * j + i + j);
    }
}
Run Code Online (Sandbox Code Playgroud)

我查看了在 …

memory iterator rust

5
推荐指数
1
解决办法
3348
查看次数

标签 统计

iterator ×1

memory ×1

rust ×1