cpp拾遗——STL——stack

1. 特点

  • 先进后出
  • 使用deque实现

2. 默认构造

stack采用模板类实现, stack对象的默认构造形式: stack stkT;
stack stkInt; //一个存放int的stack容器。
stack stkFloat; //一个存放float的stack容器。
stack stkString; //一个存放string的stack容器。
...
//尖括号内还可以设置指针类型或自定义类型。

3. push pop

stack.push(elem); //往栈头添加元素
stack.pop(); //从栈头移除第一个元素

stack stkInt;
stkInt.push(1);stkInt.push(3);stkInt.pop();
stkInt.push(5);stkInt.push(7);
stkInt.push(9);stkInt.pop();
stkInt.pop();
此时stkInt存放的元素是1,5

4. 拷贝构造与赋值

stack(const stack &stk); //拷贝构造函数
stack& operator=(const stack &stk); //重载等号操作符

		stack<int> stkIntA;
		stkIntA.push(1);
		stkIntA.push(3);
		stkIntA.push(5);
		stkIntA.push(7);
		stkIntA.push(9);

		stack<int> stkIntB(stkIntA);		//拷贝构造
		stack<int> stkIntC;
		stkIntC = stkIntA;				//赋值

5. 存取

stack.top(); //返回最后一个压入栈元素

                stack<int> stkIntA;
		stkIntA.push(1);
		stkIntA.push(3);
		stkIntA.push(5);
		stkIntA.push(7);
		stkIntA.push(9);

		int iTop = stkIntA.top();		//9
		stkIntA.top() = 19;			//19

6. 大小

stack.empty(); //判断堆栈是否为空
stack.size(); //返回堆栈的大小

		stack<int> stkIntA;
		stkIntA.push(1);
		stkIntA.push(3);
		stkIntA.push(5);
		stkIntA.push(7);
		stkIntA.push(9);

		if (!stkIntA.empty())
		{
			int iSize = stkIntA.size();		//5
		}

posted on 2022-06-10 10:15  开心种树  阅读(107)  评论(0编辑  收藏  举报