目录
1,基本概念
概念:stack是一种先进后出(first in last out, FILO)的数据结构,它只有一个出口;
栈中只有顶端的元素才可以被外界使用,因此栈不允许有遍历行为。
栈中进入数据称为—入栈 push
栈中弹出数据称为—出栈 pop
生活中与栈类似的东西:弹匣。
2,stack常用接口
构造函数:
stack<T> stk; //stack采用模板类实现,stack对象的默认构造形式
stack(const stack & stk); //拷贝构造函数
#include <iostream>
using namespace std;
#include <string>
#include <stack>
void test01()
{
//默认构造
stack<int> st1;
st1.push(10);
st1.push(20);
st1.push(30);
cout << st1.top() << endl;
//拷贝构造
stack<int> st2(st1);
}
int main()
{
test01();
system("pause");
return 0;
}
赋值操作:
stack& operator=(const stack &stk); //重载等号操作符
#include <iostream>
using namespace std;
#include <string>
#include <stack>
void test01()
{
//默认构造
stack<int> st1;
st1.push(10);
st1.push(20);
st1.push(30);
cout << st1.top() << endl;
stack<int> st2 = st1;
cout << st2.top() << endl;
}
int main()
{
test01();
system("pause");
return 0;
}
数据存取:
push(elem); //向栈顶添加元素
pop(); //从栈顶移除第一个元素
top(); //返回栈顶元素
#include <iostream>
using namespace std;
#include <string>
#include <stack>
void test01()
{
//默认构造
stack<int> st1;
st1.push(10);
st1.push(20);
st1.push(30);
cout << st1.top() << endl;
st1.pop();
cout << st1.top() << endl;
}
int main()
{
test01();
system("pause");
return 0;
}
大小操作:
empty(); // 判断堆栈是否为空
size(); //返回栈的大小
#include <iostream>
using namespace std;
#include <string>
#include <stack>
void test01()
{
//默认构造
stack<int> st1;
st1.push(10);
st1.push(20);
st1.push(30);
if (st1.empty())
{
cout << "栈为空" << endl;
}
else
{
cout << "栈不为空" << endl;
cout << "栈的大小为:" << st1.size() << endl;
}
}
int main()
{
test01();
system("pause");
return 0;
}
版权声明:本文为weixin_47207479原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。