简介STL中的队列queue

因为最近在学BFS搜索算法,在BFS中需要用到队列这样的数据结构,就去了解了一下STL中封装好的queue

1.队列简介:

在这里插入图片描述
在这里插入图片描述

2.队列的常用功能:

C++的STL标准模板库中,已经为我们实现了模板,我们可以直接使用,当然如果是初学的话建议自己去写写队列的操作。
首先必须加入#include<queue>以及using namespace std才能使用。

#include <queue>
using namespace std;
int main() {
    return 0;
}

构造一个队列:
在这里插入图片描述
入队操作:
通过方法push()进行,是在队尾插入一个元素。

#include <queue>
using namespace std;
int main() {
    queue<int> q;
    q.push(1);
    q.push(2);
    q.push(3);
    return 0;
}

获取队首元素:
通过front()进行,获取的是队头元素。

#include <queue>
#include <iostream>
using namespace std;
int main() {
    queue<int> q;
    q.push(1);
    cout << q.front() << endl;
    q.push(2);
    cout << q.front() << endl;
    q.push(3);
    cout << q.front() << endl;
    return 0;
}

出队操作:
通过pop()方法让队首元素出队

#include <queue>
#include <iostream>
using namespace std;
int main() {
    queue<int> q;
    q.push(1);
    q.push(2);
    q.push(3);
    q.pop();
    cout << q.front() << endl;
    q.pop();
    cout << q.front() << endl;
    q.pop();
    return 0;
}

判断队列是否为空:
在这里插入图片描述

#include <queue>
#include <iostream>
using namespace std;
int main() {
    queue<int> q;
    q.push(1);
    q.push(2);
    q.push(3);
    while (!q.empty()) {
        // 如果队列不空,一直出队,用这样的方法清空一个队列,因为队列没有 clear 方法。
        cout << q.front() << endl;
        q.pop();
    }
    return 0;
}

清空队列:
队列没有clear()方法需要手动清空:

// 如果队列不空,用这样的方法清空一个队列
while (!q.empty()) {
    q.pop();
}

一些STL中的常用队列功能就介绍这么多了。
欢迎关注Blog:
www.lyxueit.com

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值