中级守护
队列,一个又神秘又形似数组又跟数组是两码事其实是个特殊表的东西……
bi——————
咳咳咳
队列,普通的队列我们叫它queue,音译:却岳。
(反正我一直是这么叫的)
使用这个东东,
1.头文件
队列的头文件就叫queue,啊当然你乐意用万能头也行。
2.定义&使用
定义一个名为q,类型为int的队列:
queue<int> q;
前面说它跟数组是两码事,那么它跟数组最大的区别:
没有下标。
队列是无限大的,但是没有下标,只允许在队首删除,在队尾插入。
队列没有下标,但它有下面几种操作:
q.empty() 如果队列为空返回true,否则返回false
q.size() 返回队列中元素的个数
q.pop() 删除队列首元素但不返回其值
q.front() 返回队首元素的值,但不删除该元素
q.push() 在队尾压入新元素
q.back() 返回队列尾元素的值,但不删除该元素
WOC这个东西最让我不可容忍的就是只能获取首尾元素……
于是问题就开始出现了
输入?
输出?
========================
输入:
int x;
queue<int> q;
for(int i=1;i<=n;i++){
cin>>x;
q.push(x);
}
输入1个,入队1个。
输出:
for(int i=1;i<=n;i++){
cout<<q.front();
q.push(q.front());
q.pop();
}
就这么愉快的把问题解决了~
3.特点
我们说它是个特殊的表,那么特殊在哪呢?
先进先出。
4.队列2.0
WOC这个队列第二不能让我容忍的就是他只能队首删除队尾插入
那么问题又出现了
想要队首插入队尾删除咋办?
队列2.0升级版噔噔登场啦~
2.0队列名叫deque,音译:的确。
比队列多了两个队首删除,队尾插入的操作
pop_front() 删除头部的元素
push_back() 在尾部加入一个元素
还有就是它有下标啦!
好了啊队列我就讲这么多
最后给大家讲点破事儿吧:
1.
?????
张帆不是猫尊榜第二的大佬吗?
2.
前几天看到黑猫在找剪辑:
我**去评论了一句:
没错,这是我,一个憨憨
今天,我打开B站:
?
哇哦
(我要申精我要申精我要申精我要申精我要申精我要申精我要申精我要申精我要申精我要申精我要申精我要申精我要申精我要申精)
@酷町扫地僧