C++STL之堆栈(后进先出)stack详解-创新互联
文章目录
Part.III Code
标题名称:C++STL之堆栈(后进先出)stack详解-创新互联
标题路径:http://azwzsj.com/article/cdepgd.html
- Part.I Attention
- Part.II Funciton
- Part.III Code
stack
容器适配器的数据是以LIFO
(Last in First Out, 后进先出) 的方式组织的,可以将它想象成放在餐桌上的一摞盘子。- 必须要包含头文件
#include
和其他序列容器相比,stack
是一类存储机制简单、所提供操作较少的容器。如下图所示,stack 对象仅仅只有7个函数。
下面是stack
容器可以提供的一套完整操作:
函数名 | 含义 |
---|---|
top() | 返回一个栈顶元素的引用,类型为T& 。如果栈为空,返回值未定义。 |
push(const T& obj) | 可以将对象副本压入栈顶。这是通过调用底层容器的push_back() 函数完成的。 |
push(T&& obj) | 以移动对象的方式将对象压入栈顶。这是通过调用底层容器的有右值引用参数的push_back() 函数完成的。 |
pop() | 弹出栈顶元素,不返回任何值。 |
size() | 返回栈中元素的个数。 |
empty() | 在栈中没有元素的情况下返回 true。 |
emplace() | 用传入的参数调用构造函数,在栈顶生成对象。类似于push() ,比之少调用一次构造函数 |
swap(stack | 将当前栈中的元素和参数中的元素交换。参数所包含元素的类型必须和当前栈的相同。对于 stack 对象有一个特例化的全局函数swap() 可以使用。 |
完整代码如下:
#include#include#includeusing namespace std;
int main()
{int tmp=0;
stackstk({0,1,2,3}); // stackstk;
stackstk1({0,1,2,3});
cout<
因为操作比较简单,所以就不进行解释了。下面是输出:
3
5 5
4 3
你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧
标题名称:C++STL之堆栈(后进先出)stack详解-创新互联
标题路径:http://azwzsj.com/article/cdepgd.html