РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
724 of 1245 menu

Класс VecDeque

Класс VecDeque - это двусторонняя очередь из стандартной библиотеки Rust. В отличие от обычного вектора, VecDeque позволяет добавлять и удалять элементы как с начала, так и с конца за константное время. Внутри он реализован как кольцевой буфер, что делает его эффективным для использования в качестве очереди или стека с двумя концами. Элементы хранятся в порядке добавления, а доступ к ним возможен по индексу.

Синтаксис

use std::collections::VecDeque; let mut deque: VecDeque<T> = VecDeque::new();

Пример

Давайте создадим двустороннюю очередь и добавим элементы с обоих концов:

use std::collections::VecDeque; fn main() { let mut deque = VecDeque::new(); deque.push_back(1); deque.push_back(2); deque.push_front(0); println!("{:?}", deque); }

Результат выполнения кода:

[0, 1, 2]

Пример

Давайте извлечём элементы с обоих концов очереди:

use std::collections::VecDeque; fn main() { let mut deque = VecDeque::new(); deque.push_back(1); deque.push_back(2); deque.push_back(3); let front = deque.pop_front(); let back = deque.pop_back(); println!("front: {:?}", front); println!("back: {:?}", back); println!("deque: {:?}", deque); }

Результат выполнения кода:

front: Some(1) back: Some(3) deque: [2]

Пример

Давайте получим ссылки на первый и последний элементы очереди без их удаления:

use std::collections::VecDeque; fn main() { let mut deque = VecDeque::new(); deque.push_back("abcde"); deque.push_back("12345"); println!("front: {:?}", deque.front()); println!("back: {:?}", deque.back()); }

Результат выполнения кода:

front: Some("abcde") back: Some("12345")

Смотрите также

  • метод new,
    который создаёт новую пустую двустороннюю очередь
  • метод push_back,
    который добавляет элемент в конец очереди
  • метод push_front,
    который добавляет элемент в начало очереди
  • метод pop_front,
    который удаляет и возвращает первый элемент очереди
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить