简介STL中的队列queue

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

1.队列简介:

简介STL中的队列queue_第1张图片
简介STL中的队列queue_第2张图片

2.队列的常用功能:

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

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

构造一个队列:
简介STL中的队列queue_第3张图片
入队操作:
通过方法push()进行,是在队尾插入一个元素。

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

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

#include 
#include 
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 
#include 
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;
}

判断队列是否为空:
简介STL中的队列queue_第4张图片

#include 
#include 
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

你可能感兴趣的:(队列,STL)