8 STL-stack

 重新系统学习c++语言,并将学习过程中的知识在这里抄录、总结、沉淀。同时希望对刷到的朋友有所帮助,一起加油哦!

 生命就像一朵花,要拼尽全力绽放!死磕自个儿,身心愉悦!

写在前面,本篇章主要介绍STL中常用容器stack。

1.1 stack的基本概念

概念:

        栈容器。

        stack是一种先进后出(First In Last Out,FILO)的数据结构,它只有一个出口。

可以这样理解:        

        栈容器:可以想象成一只放砖块的小桶。

        数据:是砖块,先放入的只能后拿出。即先进后出

        先放入的砖块放到桶底(栈底),后放入的砖块在桶顶(栈顶)

编辑

stack特性:

  • 栈容器符合 先进后出
  • 栈中只有栈顶元素才能被外界访问到,因此不允许遍历
  • 栈可以判断容器是否为空,empty();
  • 栈可以返回元素个数,size();
  • 栈中进入数据称为 入栈
  • 栈中拿出数据称为 出栈

 

1.2 常用接口

构造函数:

  • stack<T> stk;                         //stack采用模板类实现,stack对象的默认构造形式
  • stack(const stack& stk);         //拷贝构造函数

赋值操作:

  • stack& operator=(const stack& stk);         //重载等号操作符

数据存取:

  • push(elem);                 //向栈顶添加元素
  • pop();                         //从栈顶移除第一个元素
  • top();                          //返回栈顶元素

大小操作:

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

示例:


#include <iostream>
#include <string>
#include<stack>

using namespace std;

// 栈常用接口
void test() {
	//stack<T> stk; //stack采用模板类实现, stack对象的默认构造形式
	stack<int> s1;
	s1.push(1);
	s1.push(2);
	s1.push(3);

	//stack(const stack& stk); //拷贝构造函数
	stack<int> s2(s1);

	//赋值操作:
	//stack& operator=(const stack& stk); //重载等号操作符
	stack<int> s3;
	s3 = s1;

	//数据存取:
	//push(elem); //向栈顶添加元素
	//pop(); //从栈顶移除第一个元素
	//top(); //返回栈顶元素
	//大小操作:
	//empty(); //判断堆栈是否为空
	//size(); //返回栈的大小
	while (!s1.empty()) {
		cout << "s1 的栈顶元素为:" << s1.top() << endl;
		s1.pop();
	}
	cout << "s1 的size为" << s1.size() << endl;
}

int main() {
	test();

	system("pause");
	return 0;
}

 

 


posted on 2022-11-24 11:35  爱学习的小灵子  阅读(18)  评论(0编辑  收藏  举报