C++初阶(stack+queue)
作者:互联网
stack
stack介绍
stack是一种先进后出的数据结构,只有一个出口,类似于栈。stack容器哦允许新增元素,移除元素,取得栈顶元素,但是除了最顶端之后,没有任何其他办法可以存取stack的其他元素,换句话说,stack不允许有遍历的行为。
元素推入栈的操作称为:push 元素推出栈的操作称为:pop
概述
- 数据结构:连续的存储空间,只有一个出口,先进后出的特性
- 迭代器:没有迭代器
- 常用的API
- 构造函数
- 赋值
- 数据存取
- 容量大小操作
总结:
- stack是一种容器适配器,专门用在具有后进先出 (last-in first-out)操作的上下文环境中,其删除只能从容器的一端进行元素的插入与提取操作。
- stack是作为容器适配器被实现的,容器适配器即是对特定类封装作为其底层的容器,并提供一组特定的成员函数来访问其元素,将特定类作为其底层的,元素特定容器的尾部(即栈顶)被压入和弹出。
- stack的底层容器可以是任何标准容器,这些容器需要满足push_back,pop_back,back和empty几个接口的操作。
- 标准容器vector、deque、list均符合这些需求,默认情况下,如果没有为stack指定特定的底层容器,默认情况下使用deque。
stack常用的接口
//构造函数
stack<T> stkT;//stack采用模板类实现,stack对象的默认构造形式
stack(const stack &stk);//拷贝构造函数
//赋值操作
stack&operator=(const stack &stk)//重载等号操作符
//数据存取操作
push(elem);//向栈顶添加元素
pop();//从栈顶移除一个元素
top();//返回栈顶元素
//容量大小操作
empty();//判断堆栈是否为空
size();//返回堆栈的大小
queue
queue介绍
queue是一种先进后出的数据结构(队列),它有两个出口,queue容器允许从一端新增元素,另一端移除元素
概述
- 数据结构:连续的存储空间,有两个口,一个是进入数据,一个是出数据,有先进先出的特性
- 迭代器:没有迭代器
- 常用API
- 构造函数
- 存取、插入和删除
- 赋值
- 大小操作