Случайный доступ к элементам не допускается.Использование итератора, как пропустить несколько значений, а затем отобразить остальные?
let vec = vec![1,2,3,4,5,6,7,8,9,0];
let n = 3;
for v in vec.iter().rev().take(n) {
println!("{}", v);
}
// this printed: 0, 9, 8
// need: 8, 9, 0
for v in vec.iter().rev().skip(n).rev()
не работает.
Предположим, что вектор 1000 элементов. Вам нужно будет пропустить 997 элементов, а затем отобразить оставшиеся 3 элемента. Я хочу пропустить 3 элемента с конца, а затем напечатать 3 элемента, всего: 6 ходов. – vigu
Итераторы @vigu не позволяют вам создавать один и тот же элемент дважды, поэтому вы не можете повторять итерации назад, а затем снова итерации вперед по тем же элементам. – Shepmaster
@Shepmaster компилятор оптимизирует пропустить первые 1000 элементов? – vigu