當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Rust VecDeque.rotate_right用法及代碼示例


本文簡要介紹rust語言中 std::collections::VecDeque.rotate_right 的用法。

用法

pub fn rotate_right(&mut self, k: usize)

將雙端隊列 k 位置向右旋轉。

等效地,

  • 將第一項旋轉到位置 k
  • 彈出最後的 k 項目並將它們推到前麵。
  • len() - k 位置向左旋轉。

Panics

如果k大於len().注意k == len()不是Panics並且是no-op輪換。

複雜度

花費*O*(min(k, len() - k)) 時間並且沒有額外空間。

例子

use std::collections::VecDeque;

let mut buf: VecDeque<_> = (0..10).collect();

buf.rotate_right(3);
assert_eq!(buf, [7, 8, 9, 0, 1, 2, 3, 4, 5, 6]);

for i in 1..10 {
    assert_eq!(0, buf[i * 3 % 10]);
    buf.rotate_right(3);
}
assert_eq!(buf, [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]);

相關用法


注:本文由純淨天空篩選整理自rust-lang.org大神的英文原創作品 std::collections::VecDeque.rotate_right。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。