【问题标题】:How to use built-in data structures without typing them out?如何使用内置数据结构而不需要输入它们?
【发布时间】:2015-10-29 08:41:01
【问题描述】:

我想用 C++ 编写一个使用两个队列实现堆栈的程序。我可以输入整个队列数据结构。但是有什么方法可以声明两个队列 q1 和 q2 并使用它们的内置函数,如 enqueue、dequeue 和 isQueueEmpty?如果是这样,我该如何声明它们以及如何知道它们的内置函数的名称?

【问题讨论】:

  • 告诉我们该语言将大有帮助...Google 还会为您提供大量关于如何以您想要的语言声明和使用堆栈/队列的结果(如果它们可用)。
  • 你应该从阅读一本关于 C++ 的书开始。如果你在谷歌上搜索“C++ 教程”,你也可以在网上找到资源。 C++ 提供了许多“容器”,其中包括队列。如果您搜索“C++ 队列”,您将找到列出内置函数的参考链接。你怎么没试过?
  • 您的问题也应该更具体。从您之前提出的其他问题中,我看到您正在“手动”实施数据结构作为练习;如果您想使用自己的手工制作队列,将您指向std::queue 可能不是您所需要的。您是否在问如何避免再次为您在另一个项目/程序中手工制作的队列“输入”所有源代码?然后你的问题针对模块化软件开发(可能的答案会提到库、头文件和制作文件)。

标签: c++ data-structures queue


【解决方案1】:

这取决于您使用的语言。如果您使用的是 C++,那么您可以为此使用模板功能。

队列被实现为容器适配器,它们是类 使用特定容器类的封装对象作为其 底层容器,提供一组特定的成员函数 访问它的元素。元素被推入 特定容器并从其“前面”弹出。

要使用此功能,您需要包含头文件队列

#include <queue> 

然后你需要为那个创建一个对象。

std::queue<int> process;

里面的值指定了队列中元素的类型。这里是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/

【讨论】:

  • 欢迎来到 Stack Overflow!虽然这可能会回答问题,it would be preferable 在此处包含答案的基本部分,并提供链接以供参考。
猜你喜欢
  • 1970-01-01
  • 2021-06-19
  • 2023-04-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多