stack栈是一种先进后出的数据结构,记得大学时期的计算器就是使用栈的数据结构实现,当然这种数据结构使用场景居多。
Constructor stack
std::stack<int> first;
std::stack<int> second(first);
std::stack<int, std;:vector<int>> third; //使用vector初始化stack
压栈,出栈
stack压栈函数是push(),而出栈是pop(),pop()把栈顶元素弹出,不在留在容器中。如果只想获取值那么可以通过top()函数得到栈顶元素,注意top()返回的是引用。所以可以修改它。
#include <iostream>
#include <stack>
#include <vector>
#include <string>
//******************************************************************
//FUNCTION:
void addStackElements(std::stack<int>& vStack)
{
vStack.push(1);
vStack.push(2);
}
//******************************************************************
//FUNCTION:
void removeStackElements(std::stack<int>& vStack)
{
while (!vStack.empty())
{
vStack.pop();
}
}
int main()
{
std::stack<int> first;
std::stack<int> second(first);
std::vector<int> temp(2, 100);
std::stack<int, std::vector<int>> third(temp); //使用vector初始化stack
addStackElements(first);
int& top = first.top();
top += 5;
removeStackElements(first);
return 1;
}
【参考资料】
【1】http://www.cse.ust.hk/~quan/comp2012/codes/6-STLString/sq_ref.pdf
【2】http://www.cplusplus.com/reference/stack/stack/