C++ Queue::queue() 函式



C++ 的std::queue::queue() 函式建構函式初始化一個佇列,這是一個先進先出 (FIFO) 資料結構。預設建構函式 queue() 建立一個空佇列,我們可以使用 queue(const Container & cont) 從另一個容器初始化佇列。

複製建構函式 queue 和移動建構函式 queue 允許我們從現有佇列建立一個新佇列,可以透過複製或移動其元素來實現。

語法

以下是 std::queue::queue() 建構函式的語法。

explicit queue (const container_type& ctnr = container_type());
or
explicit queue (const container_type& ctnr);
or
queue( queue&& other);
or
queue( queue& other );

引數

  • ctnr - 它指示容器型別,它是類模板的第二個引數
  • other - 它指示另一個相同型別的佇列物件。

返回值

建構函式從不返回值。

示例

讓我們看看下面的示例,我們將使用預設建構函式。

#include <iostream>
#include <queue>
int main()
{
    std::queue<int> a;
    std::cout << "Size of the queue after default construction: " << a.size() << std::endl;
    return 0;
}

輸出

以下是上述程式碼的輸出 -

Size of the queue after default construction: 0

示例

考慮另一種情況,我們將使用複製建構函式。

#include <iostream>
#include <queue>
int main()
{
    std::queue<int> a;
    a.push(11);
    a.push(2);
    std::queue<int> b(a);
    std::cout << "Size of the queue after copy construction: " << b.size() << std::endl;
    return 0;
}

輸出

讓我們編譯並執行上述程式,這將產生以下結果 -

Size of the queue after copy construction: 2

示例

以下是使用移動建構函式的示例。

#include <iostream>
#include <queue>
int main()
{
    std::queue<int> a;
    a.push(111);
    a.push(22);
    std::queue<int> b(std::move(a));
    std::cout << "Size of the queue after move construction: " << b.size() << std::endl;
    std::cout << "Size of the queue after move construction: " << a.size() << std::endl;
    return 0;
}

輸出

上述程式碼的輸出如下 -

Size of the queue after move construction: 2
Size of the queue after move construction: 0

示例

在下面的示例中,我們將使用不同的容器構造一個佇列。

#include <iostream>
#include <queue>
#include <deque>
int main()
{
    std::deque<int> a = {11,22,3,4};
    std::queue<int, std::deque<int>> b(a);
    std::cout << "Queue size: " << b.size() << std::endl;
    return 0;
}

輸出

如果我們執行上述程式碼,它將生成以下輸出 -

Queue size: 4
queue.htm
廣告

© . All rights reserved.