📅  最后修改于: 2023-12-03 15:29:49.986000             🧑  作者: Mango
队列(queue)是一种先进先出(FIFO)的数据结构,类似于排队。STL 通过 queue
类来实现队列的功能,同时提供了 push()
和 pop()
方法用于队列的操作。
push()
方法用于在队列的尾部插入一个元素。它的声明如下:
void push (const value_type& val);
其中,val
表示要插入的元素值。这个方法会将 val
复制一份并插入到队列的尾部。例如:
#include <iostream>
#include <queue>
using namespace std;
int main()
{
queue<int> myqueue;
myqueue.push(10);
myqueue.push(20);
myqueue.push(30);
cout << "myqueue contains: ";
while (!myqueue.empty())
{
cout << ' ' << myqueue.front();
myqueue.pop();
}
cout << endl;
return 0;
}
上面的代码中,我们创建了一个空队列 myqueue
,并使用 push()
方法将 10、20 和 30 插入到队列中。然后我们使用 front()
和 pop()
方法依次取出队列中元素并打印,输出结果为:
myqueue contains: 10 20 30
pop()
方法用于从队列头部移除一个元素。它没有参数,也没有返回值。如果队列为空,这个方法会导致未定义的行为。例如:
#include <iostream>
#include <queue>
using namespace std;
int main()
{
queue<int> myqueue;
myqueue.push(10);
myqueue.push(20);
myqueue.push(30);
cout << "myqueue contains: ";
while (!myqueue.empty())
{
cout << ' ' << myqueue.front();
myqueue.pop(); // 从队列头部移除元素
}
cout << endl;
return 0;
}
上面的代码中,我们使用 pop()
方法从队列头部移除元素,直到队列为空。输出结果为:
myqueue contains: 10 20 30
push()
方法用于在队列尾部插入元素,pop()
方法用于从队列头部移除元素。它们是队列的基本操作,也是 queue
类提供的最常用的方法之一。在使用它们时需要注意,如果队列为空,则不能调用 front()
或 pop()
方法。