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


Rust VecDeque.rotate_left用法及代碼示例


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

用法

pub fn rotate_left(&mut self, mid: usize)

將雙端隊列 mid 位置向左旋轉。

等效地,

  • 將項目mid 旋轉到第一個位置。
  • 彈出第一個 mid 項目並將它們推到最後。
  • len() - mid 位置向右旋轉。

Panics

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

複雜度

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

例子

use std::collections::VecDeque;

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

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

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

相關用法


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