栈(stack)
------栈是一种后进先出的数据结构(LIFO,last in/first out),在存储以及查找数据时只能访问栈的一端,基本方法包括如下:
方法 | 解释 |
---|---|
empty() | 判断栈是否为非空 |
size() | 栈的大小 |
push(el) | 将元素el放到栈的顶部 |
pop() | 弹出栈顶元素 |
clear() | 清空栈 |
队列(queue)
------队列是一种先进先出的数据结构(FIFO,first in/first out),它是一种使用两端的结构,一端用来加入新元素,一端用来删除元素,最后一个元素必须等到它之前的所有元素全部都删除才能够操作,基本方法包括如下:
方法 | 解释 |
---|---|
empty() | 判断队列是否为非空 |
size() | 队列的大小 |
push(el) | 将元素el放到队列的尾部 |
pop() | 弹出队列的头元素,void |
clear() | 清空队列 |
back() | 返回最后一个元素,但不删除 |
front() | 返回第一个元素 |
优先队列(priority_queue)
------优先队列是通过优先级的高低进行存储,根据元素的优先级以及在队列中的当前位置决定出队列的顺序(以数为例,默认数字大的元素具有较高的优先级),基本方法包括如下:
方法 | 解释 |
---|---|
empty() | 判断队列是否为非空 |
size() | 队列的大小 |
push(el) | 将元素el放入到优先队列中 |
pop() | 弹出队列顶元素 |
top() | 返回队列顶元素 |
双端队列(deque)
------双端队列是允许在两端访问的线性表,所以他可以用双向链表来实现,但是在STL中双端队列中还添加了随机访问双端队列任意位置的功能,和数组以及向量类似,所以说这种结构结合了向量以及链表的功能,基本方法包括如下:
方法 | 解释 |
---|---|
empty() | 判断队列是否为非空 |
size() | 队列的大小 |
insert | 将元素插入到队列中 |
pop() | 弹出队列的头元素,void |
clear() | 清空队列 |
push_back(val) | 将val插入双端队列的尾部 |
push_front(val) | 将val插入队列头部 |
pop_back() | 弹出最后一个元素 |
pop_front() | 弹出第一个元素 |
begin() | return an iterator to the beginning of the sequence container. |
end() | return an iterator to the element past the end of the sequence. |