pub rec Deque[T];
pub fun init[T](alloc: *allocator.Allocator) Deque[T];
创建一个空双端队列
alloc:用于分配的分配器 ret:一个新的空 Deque[T]
pub fun dnit[T](dq: *Deque[T]) bool;
释放后备缓冲区
ret:如果内存成功释放则为 true
pub fun is_empty[T](dq: Deque[T]) bool;
检查双端队列是否为空
ret:如果双端队列没有元素则为 true
pub fun length[T](dq: Deque[T]) usize;
返回双端队列中的元素数量
ret:元素数量
pub fun push_back[T](dq: *Deque[T], value: T) Result[usize, str];
向双端队列尾部追加一个值
value:要追加的值 ret:新长度,或一个错误
pub fun push_front[T](dq: *Deque[T], value: T) Result[usize, str];
向双端队列头部前置一个值
value:要前置的值 ret:新长度,或一个错误
pub fun pop_back[T](dq: *Deque[T]) Result[T, str];
移除并返回尾部的元素
ret:该值,如果为空则返回错误
pub fun pop_front[T](dq: *Deque[T]) Result[T, str];
移除并返回头部的元素
ret:该值,如果为空则返回错误
pub fun get[T](dq: *Deque[T], index: usize) Result[*T, str];
获取指向给定逻辑索引处元素的指针
index:逻辑索引(0 = 头部) ret:指向元素的指针,或一个错误
pub fun clear[T](dq: *Deque[T]);
将双端队列重置为空,而不释放内存