deque

std.collections.deque

rec Deque

pub rec Deque[T];

fun init

pub fun init[T](alloc: *allocator.Allocator) Deque[T];

创建一个空双端队列

alloc:用于分配的分配器 ret:一个新的空 Deque[T]

fun dnit

pub fun dnit[T](dq: *Deque[T]) bool;

释放后备缓冲区

ret:如果内存成功释放则为 true

fun is_empty

pub fun is_empty[T](dq: Deque[T]) bool;

检查双端队列是否为空

ret:如果双端队列没有元素则为 true

fun length

pub fun length[T](dq: Deque[T]) usize;

返回双端队列中的元素数量

ret:元素数量

fun push_back

pub fun push_back[T](dq: *Deque[T], value: T) Result[usize, str];

向双端队列尾部追加一个值

value:要追加的值 ret:新长度,或一个错误

fun push_front

pub fun push_front[T](dq: *Deque[T], value: T) Result[usize, str];

向双端队列头部前置一个值

value:要前置的值 ret:新长度,或一个错误

fun pop_back

pub fun pop_back[T](dq: *Deque[T]) Result[T, str];

移除并返回尾部的元素

ret:该值,如果为空则返回错误

fun pop_front

pub fun pop_front[T](dq: *Deque[T]) Result[T, str];

移除并返回头部的元素

ret:该值,如果为空则返回错误

fun get

pub fun get[T](dq: *Deque[T], index: usize) Result[*T, str];

获取指向给定逻辑索引处元素的指针

index:逻辑索引(0 = 头部) ret:指向元素的指针,或一个错误

fun clear

pub fun clear[T](dq: *Deque[T]);

将双端队列重置为空,而不释放内存