簡體   English   中英

如何使用內置數據結構而不輸入它們?

[英]How to use built-in data structures without typing them out?

我想用 C++ 編寫一個使用兩個隊列實現堆棧的程序。 我可以輸入整個隊列數據結構。 但是有什么方法可以聲明兩個隊列 q1 和 q2 並使用它們的內置函數,如 enqueue、dequeue 和 isQueueEmpty? 如果是這樣,我如何聲明它們以及如何知道它們的內置函數的名稱?

這取決於您使用的語言。如果您使用的是 C++,那么您可以為此使用模板功能。

隊列被實現為容器適配器,這些類使用特定容器類的封裝對象作為其底層容器,提供一組特定的成員函數來訪問其元素。 元素被推入特定容器的“后部”並從其“前部”彈出。

要使用此功能,您需要包含頭文件隊列

#include <queue> 

然后你需要為此創建一個對象。

std::queue<int> process;

這里< >里面的 value 指定了隊列中元素的類型。 這里是int。 即隊列中的所有元素都是整數類型。 您可以將進程視為隊列類的對象,使用該對象和點運算符可以訪問隊列模板的每個成員函數。

它包含以下功能(列表不完整)

  1. empty() - 用於檢查隊列是否為空
  2. size() - 用於獲取隊列的大小
  3. front() - 返回前面的元素
  4. back() - 返回后面的元素
  5. push_back() - 在隊列的后端推送(入隊)
  6. pop_front() - 從隊列前端彈出(出隊)

您可以從這里獲得更多詳細信息: http : //www.cplusplus.com/reference/queue/queue/

下面的鏈接包含一個示例程序,說明隊列模板的使用: http : //www.cplusplus.com/reference/queue/queue/push/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM