在C ++中,我是否需要创建自己的堆栈或队列类,还是可以从某个地方导入它?

时间:2014-11-13 18:28:36

标签: c++ stl stack queue

我在网上看到的所有内容都描述了stack.cpp文件的实现以及如何包含使用您自己的实现的stack.h文件。当我在python中使用堆栈或队列时,它只是:

from queue import * 

我不关心如何实现堆栈或队列,我只需要使用一个。上面的C ++中的python代码是什么?或者我真的必须在这里实现我自己的堆栈和队列吗?

4 个答案:

答案 0 :(得分:2)

C ++标准库提供了各种容器类,包括the stackqueue

答案 1 :(得分:2)

#include <stack>
#include <queue>

会给你

std::stack<T>

std::queue<T>
分别

答案 2 :(得分:2)

C ++中有容器适配器std::stackstd::queuestd::priority_queue。它们在标题<stack><queue>中相应声明。您只需要包含适当的标题。例如

#include <stack>

答案 3 :(得分:0)

堆栈中允许执行以下操作

空,大小,后退,push_back,pop_back

堆栈的例子

#include <iostream>       // std::cout
#include <stack>          // std::stack

int main ()
{
  std::stack<int> mystack;

  for (int i=0; i<5; ++i) mystack.push(i);

  std::cout << "Popping out elements...";
  while (!mystack.empty())
  {
     std::cout << ' ' << mystack.top();
     mystack.pop();
  }
  std::cout << '\n';

  return 0;
}

队列中允许执行以下操作

空,大小,前,后,后推,pop_front

队列示例

#include <iostream>       // std::cin, std::cout
#include <queue>          // std::queue

int main ()
{
  std::queue<int> myqueue;
  int myint;

  std::cout << "Please enter some integers (enter 0 to end):\n";

  do {
    std::cin >> myint;
    myqueue.push (myint);
  } while (myint);

  std::cout << "myqueue contains: ";
  while (!myqueue.empty())
  {
    std::cout << ' ' << myqueue.front();
    myqueue.pop();
  }
  std::cout << '\n';

  return 0;
}

有关详细信息和示例

http://www.cplusplus.com/reference/queue/queue/

http://www.cplusplus.com/reference/stack/stack/