A double-ended queue implemented as a circular buffer
Deque
DequeIterator
- Deque iteratorDequeMutIterator
- Deque mutable iteratorDequeMutRevIterator
- Deque mutable reverse iteratorDequeRevIterator
- Deque reverse iteratorof Container for Deque<T> where <T>
of Mutable for Deque<T> where <T>
for Deque<T> where <T>
of Iterator<&'self T> for DequeIterator<'self, T> where <'self, T>
of Iterator<&'self T> for DequeRevIterator<'self, T> where <'self, T>
of Iterator<&'self mut T> for DequeMutIterator<'self, T> where <'self, T>
of Iterator<&'self mut T> for DequeMutRevIterator<'self, T> where <'self, T>
Deque
pub struct Deque<T> {
priv nelts: uint,
priv lo: uint,
priv hi: uint,
priv elts: ~[Option<T>],
}
DequeIterator
pub struct DequeIterator<'self, T> {
priv idx: uint,
priv nelts: uint,
priv used: uint,
priv vec: &'self [Option<T>],
}
Deque iterator
DequeMutIterator
pub struct DequeMutIterator<'self, T> {
priv idx: uint,
priv nelts: uint,
priv used: uint,
priv vec: &'self mut [Option<T>],
}
Deque mutable iterator
DequeMutRevIterator
pub struct DequeMutRevIterator<'self, T> {
priv idx: uint,
priv nelts: uint,
priv used: uint,
priv vec: &'self mut [Option<T>],
}
Deque mutable reverse iterator
DequeRevIterator
pub struct DequeRevIterator<'self, T> {
priv idx: uint,
priv nelts: uint,
priv used: uint,
priv vec: &'self [Option<T>],
}
Deque reverse iterator
Container
for Deque<T>
where <T>
len
fn len(&self) -> uint
Return the number of elements in the deque
is_empty
fn is_empty(&self) -> bool
Return true if the deque contains no elements
Mutable
for Deque<T>
where <T>
clear
fn clear(&mut self)
Clear the deque, removing all values.
Deque<T>
where <T>
new
fn new() -> Deque<T>
Create an empty Deque
peek_front
fn peek_front<'a>(&'a self) -> &'a T
Return a reference to the first element in the deque
Fails if the deque is empty
peek_back
fn peek_back<'a>(&'a self) -> &'a T
Return a reference to the last element in the deque
Fails if the deque is empty
get
fn get<'a>(&'a self, i: int) -> &'a T
Retrieve an element in the deque by index
Fails if there is no element with the given index
each
fn each(&self, f: &fn(&T) -> bool) -> bool
Iterate over the elements in the deque
eachi
fn eachi(&self, f: &fn(uint, &T) -> bool) -> bool
Iterate over the elements in the deque by index
pop_front
fn pop_front(&mut self) -> T
Remove and return the first element in the deque
Fails if the deque is empty
pop_back
fn pop_back(&mut self) -> T
Remove and return the last element in the deque
Fails if the deque is empty
add_front
fn add_front(&mut self, t: T)
Prepend an element to the deque
add_back
fn add_back(&mut self, t: T)
Append an element to the deque
reserve
fn reserve(&mut self, n: uint)
Reserve capacity for exactly n
elements in the given deque, doing nothing if self
's capacity is already equal to or greater than the requested capacity
reserve_at_least
fn reserve_at_least(&mut self, n: uint)
Reserve capacity for at least n
elements in the given deque, over-allocating in case the caller needs to reserve additional space.
Do nothing if self
's capacity is already equal to or greater than the requested capacity.
iter
fn iter<'a>(&'a self) -> DequeIterator<'a, T>
Front-to-back iterator.
mut_iter
fn mut_iter<'a>(&'a mut self) -> DequeMutIterator<'a, T>
Front-to-back iterator which returns mutable values.
rev_iter
fn rev_iter<'a>(&'a self) -> DequeRevIterator<'a, T>
Back-to-front iterator.
mut_rev_iter
fn mut_rev_iter<'a>(&'a mut self) -> DequeMutRevIterator<'a, T>
Back-to-front iterator which returns mutable values.
Iterator<&'self T>
for DequeIterator<'self, T>
where <'self, T>
next
fn next(&mut self) -> Option<&'self T>
Iterator<&'self T>
for DequeRevIterator<'self, T>
where <'self, T>
next
fn next(&mut self) -> Option<&'self T>
Iterator<&'self mut T>
for DequeMutIterator<'self, T>
where <'self, T>
next
fn next(&mut self) -> Option<&'self mut T>
Iterator<&'self mut T>
for DequeMutRevIterator<'self, T>
where <'self, T>
next
fn next(&mut self) -> Option<&'self mut T>