C++栈和队列

C++栈和队列,第1张

文章目录
  • 前言

  • 一、栈的基本 *** 作是什么?


  • 二、队列的基本 *** 作是什么?

    • 1.队列quene
    • 2.优先队列的使用方法(priority_queu)
  • 总结


前言

记录一些刷栈和队列的力扣所学到的一些常用的东西



一、栈的基本 *** 作是什么?

基本 *** 作:
push(x) 将x加入栈中,即入栈 *** 作

pop() 出栈 *** 作(删除栈顶),只是出栈,没有返回值。


注意这里如果需要返回值,可以调用this->pop();

top() 返回第一个元素(栈顶元素)

size() 返回栈中的元素个数

empty() 当栈为空时,返回 true


二、队列的基本 *** 作是什么? 1.队列quene

push(x) 将x压入队列的末端

pop() d出队列的第一个元素(队顶元素),注意此函数并不返回任何值

front() 返回第一个元素的引用(队顶元素)

back() 返回最后被压入的元素的引用(队尾元素)

empty() 当队列为空时,返回true

size() 返回队列的长度

2.优先队列的使用方法(priority_queu)

empty() 如果队列为空返回真
pop() 删除队顶元素
push() 加入一个元素
size() 返回优先队列中拥有的元素个数
top() 返回优先队列对顶元素


总结

STL中栈往往不被归类为容器,而被归类为container adapter(容器适配器)。


那么问题来了,STL 中栈是用什么容器实现的?

栈的内部结构,栈的底层实现可以是vector,deque,list 都是可以的, 主要就是数组和链表的底层实现。


队列和栈的底层实现默认为deque。


deque容器和vector很像,它能够快速地随机访问任一个元素,并且能够高效地插入和删除容器的尾部元素。


但它又与vector不同,deque还支持高效插入和删除容器的头部元素,因此也叫做双端队列。


可以理解为一个两头都能用的vector。


使用方法:
push_front( x):双端队列头部增加一个元素x

push_back(x):双端队列尾部增加一个元素x

pop_front():删除双端队列中最前一个元素

pop_back():删除双端队列中最后一个元素

另外push_back与pop_back也为容器vector *** 作函数。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/568823.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-04-09
下一篇 2022-04-09

发表评论

登录后才能评论

评论列表(0条)

保存