Vector 有没有办法得到向量的每个n*i元素?

Vector 有没有办法得到向量的每个n*i元素?,vector,rust,linear-algebra,Vector,Rust,Linear Algebra,有什么聪明的方法可以得到向量的每个n*i元素吗?我有这个向量: 让示例=vec![1, 2, 3, 4, 5, 6, 7, 8, 9]; 我想要这个向量的每三分之一的值,所以输出为: 让结果=向量![3, 6, 9]; 我知道我可以通过for循环实现这一点: 让mut结果:Vec=Vec![]; 设偏移量=3; 对于索引,example.iter.enumerate中的值{ 如果索引+1%偏移量==0{ result.pushvalue.clone; } } 要迭代每个第n个元素,请使用。但是,

有什么聪明的方法可以得到向量的每个n*i元素吗?我有这个向量:

让示例=vec![1, 2, 3, 4, 5, 6, 7, 8, 9]; 我想要这个向量的每三分之一的值,所以输出为:

让结果=向量![3, 6, 9]; 我知道我可以通过for循环实现这一点:

让mut结果:Vec=Vec![]; 设偏移量=3; 对于索引,example.iter.enumerate中的值{ 如果索引+1%偏移量==0{ result.pushvalue.clone; } } 要迭代每个第n个元素,请使用。但是,使用从初始值开始的值时,您还需要链接:

另见:

要迭代每个第n个元素,请使用。但是,使用从初始值开始的值时,您还需要链接:

另见:


问题标题中的n和i是什么?你似乎有一个解决办法,那么你的问题到底是什么?如果您的解决方案中有任何您不喜欢的地方,请让我们知道它是什么,以便我们了解要解决的问题。问题标题中的n和i是什么?你似乎有一个解决办法,那么你的问题到底是什么?如果您的解决方案中有任何您不喜欢的地方,请让我们知道它是什么,以便我们了解要解决的问题。看起来很干净:D.谢谢@kmdreko看起来很干净:D.谢谢@kmdreko
let example = vec![1, 2, 3, 4, 5, 6, 7, 8, 9];
let n = 3;
let result: Vec<_> = example.iter().skip(n-1).step_by(n).copied().collect();
println!("{:?}", result);