📅  最后修改于: 2023-12-03 15:09:17.737000             🧑  作者: Mango
在 C++ 中,可以使用 STL 的 stack
模板类实现堆栈数据结构。通过特殊的调用方式,这种堆栈可以垂直排列。本篇文章将会介绍如何创建和使用垂直堆栈。
首先,在 C++ 中创建垂直堆栈,需要用到 STL 中的 stack
模板类。在代码中包含头文件 <stack>
,使用如下代码即可创建一个垂直堆栈:
#include <stack>
using namespace std;
stack<int, vector<int>> vertical_stack;
这个垂直堆栈中存储的元素类型是 int
,底层容器类型是 vector<int>
。需要注意的是,vector 必须被包含在垂直堆栈的定义中。
在垂直堆栈中添加元素的方法是 push()
,代码如下:
vertical_stack.push(10);
这里,我们向垂直堆栈中添加了一个整数类型的值 10。
在垂直堆栈中移除元素的方法是 pop()
。代码如下:
vertical_stack.pop();
这里,我们从垂直堆栈的顶部弹出一个元素。
要访问垂直堆栈顶部的元素,可以使用 top()
方法,代码如下:
int top_element = vertical_stack.top();
这里,我们从垂直堆栈的顶部访问了一个元素,并将其存储在变量 top_element
中。
当垂直堆栈为空时,可以使用 empty()
方法来检查。代码如下:
if(vertical_stack.empty()){
cout << "Stack is empty!" << endl;
}
这里,我们检查了垂直堆栈是否为空,并输出了一条相关的信息。
下面是一个包含了上述操作的完整代码示例:
#include <iostream>
#include <stack>
using namespace std;
int main(){
stack<int, vector<int>> vertical_stack;
vertical_stack.push(10);
vertical_stack.push(20);
int top_element = vertical_stack.top();
cout << "Top element: " << top_element << endl;
vertical_stack.pop();
top_element = vertical_stack.top();
cout << "Top element after pop(): " << top_element << endl;
if(vertical_stack.empty()){
cout << "Stack is empty!" << endl;
}
return 0;
}
通过使用 stack
模板类,我们可以很方便地创建和使用垂直堆栈。需要注意的是,底层容器必须被指定为 vector
,并且必须在垂直堆栈的定义中包含。