STL之stack、queue

1.stack简介:
stack是STL中的一种容器适配器,被设计来用于操作先进后出(First In Last Out,FILO)结构的情景,在这种情况下,元素的插入和删除都只能在容器的尾部进行。
元素只能在这个特定的容器的后面,也就是栈的顶部,进行出栈和入栈操作。
使用stack需要声明头文件#include< stack>

2.stack的构造
构造satck:默认构造形式:stack< Type>stkName;
如:

stack< int>s1;//定义一个存放int的stack容器,并命名为s1
stack<flaoat>s2;//定义一个存放float的容器
stack<string>s3;
//尖括号内还可以设置指针类型或者是自定义类型

3.stack的基本操作函数

push(x) //入栈操作(加入栈顶),将x加入栈顶
pop()   //出栈操作(删除栈顶),只是出栈,没有返回值
top()   //返回第一个元素(栈顶元素)
size()  //返回栈中的元素个数
empty() //当栈为空时返回true
swap()  //交换两个栈的内容(所有元素)

4.⚠️对一个空栈进行pop(),会导致程序异常终止,应该使用empty()提前检查

5.stack的拷贝构造与赋值

stack对象的拷贝构造形式:stack< Type>stk2(stk1);
stack的赋值形式:stk2 = stk1;
例如:
stack<int>s1;   
stack<int>s2(s1);//拷贝s1并构造s2
stack<int>s3;
s3 = s1;        //将s1的值赋给s3

6.stack的关系运算符
== != > >= < <=
a.==用于比较两个栈是否相等,首先判断大小是否相等,然后再通过==判断元素之间是否相等,将会在第一个不相等的地方停止
b.!= 和==是相反的。只要大小不同或者是有一个元素不一样就是不相等的
c.<是从第一元素开始比较当发现不小于时停止,如果一个栈时另一个栈的前缀,那么长的栈大,余下3种关系运算符原理相同。
返回值都是0,1

7.queue简介:
quene是STL中的一种容器适配器,被设计来用于操作先进先出(First In First Out,FIFO)结构的情景,在这种情况下,元素的插入在容器的尾部进行,删除在容器的头部进行。
使用quene需要声明头文件#include< queue>

8.queue的构造(与stack相同)
构造queue:默认构造形式:stack< Type>stkName;
如:

stack< int>s1;//定义一个存放int的queue容器,并命名为s1
stack<flaoat>s2;//定义一个存放float的容器
stack<string>s3;
//尖括号内还可以设置指针类型或者是自定义类型

9.queue的基本操作函数

push(x) //入队操作(加入队尾),将x加入队尾
pop()   //出队操作(删除队首),只是出队,没有返回值
//top()返回第一个元素(栈顶元素)
front() //返回第一个元素(队首元素)
back()  //返回最后一个元素(队尾元素)
size()  //返回队列中的元素个数
empty() //当队列为空时返回true
swap()  //交换两个队列的内容(所有元素)

总结:
stack的应用:
递归算法
括号匹配检测
DFS算法
······
queue的应用:
保存暂时不用的数据(存储地址)
BFS算法

猜你喜欢

转载自blog.csdn.net/ancientear/article/details/79630366