벡터의 모든 n * i 요소를 얻는 방법이 있습니까?
n * i
벡터의 모든 요소 를 얻는 영리한 방법이 있습니까? 이 벡터가 있습니다.
let example = vec![1, 2, 3, 4, 5, 6, 7, 8, 9];
이 벡터의 모든 세 번째 값을 원하므로 출력은 다음과 같습니다.
let result = vec![3, 6, 9];
for 루프로 이것을 달성 할 수 있다는 것을 알고 있습니다.
let mut result: Vec<i32> = vec![];
let offset = 3;
for (index, value) in example.iter().enumerate() {
if (index + 1) % offset == 0 {
result.push(value.clone());
}
}
답변
1 kmdreko
n 번째 요소 마다 반복하려면을 사용하십시오 .step_by(). 그러나이를 사용하는 것은 초기 값에서 시작하므로 체인 .skip()도 필요합니다 . 놀이터 :
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);
[3, 6, 9]
또한보십시오:
- 각 N 번째 값을 반환하는 반복기
- 매초마다 반복하는 방법