📜  C++ STL 中的队列 push() 和 pop()(1)

📅  最后修改于: 2023-12-03 15:29:49.986000             🧑  作者: Mango

C++ STL 中的队列 push() 和 pop()

队列(queue)是一种先进先出(FIFO)的数据结构,类似于排队。STL 通过 queue 类来实现队列的功能,同时提供了 push()pop() 方法用于队列的操作。

push() 方法

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() 方法

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() 方法。