栈的基础知识
- 栈(stack)是一种数据结构,在C++中属于STL(标准库)
- 特点:先进后出
- 栈的使用:
- 一、引入头文件
<stack>
- 二、创建栈变量(类似容器、集合的创建方式),如
stack<int> my_stack;
- 一、引入头文件
- stack基础功能:
stack.empty()
,判断是否为空栈,是则返回true,否则falsestack.push(value)
,压栈,向栈中添加元素stack.pop()
,弹栈,从栈中移除元素(只能去栈顶元素)stack.top()
,获取栈顶元素,但不会删除它stack.size()
,获取栈的长度- 无走访功能,也不提供迭代器(iterator,迭代器内容见上一篇文章)
- 栈是以底层容器完成其所有的功能,对外提供统一的接口,其底层容器是可插拔的(也就是说可以使用不同的底层容器来实现栈的功能,如vector、list、deque等)
- 因此,栈不被归类为一种容器,而被归类为一种容器适配器(container adapter)
队列的基础知识
- 队列(queue)是一种数据结构,在C++中属于STL(标准库)
- 特点:先进先出
- 队列的使用:
- 一、引入头文件
<queue>
- 二、创建队列变量(类似容器、集合的创建方式),如
queue<int> my_queue;
- 一、引入头文件
- queue基础功能:
my_queue.empty()
,判断是否为空队列,是则返回true,否则falsemy_queue.push(value)
,向队列末尾添加元素my_queue.pop()
,从队列中移除元素(只能移除队列首元素)my_queue.front()
,获取队列首元素,但不会删除它my_queue.size()
,获取队列的长度- 无走访功能,也不提供迭代器(iterator,迭代器内容见上一篇文章)
- 队列是以底层容器完成其所有的功能,对外提供统一的接口,其底层容器是可插拔的(也就是说可以使用不同的底层容器来实现队列的功能,如vector、list、deque等)
- 因此,队列不被归类为一种容器,而被归类为一种容器适配器(container adapter)