关于c++中栈STL的问题

Questions about stack STL in C++

本文关键字:问题 STL 中栈 c++ 关于      更新时间:2023-10-16

所以我试图理解堆栈STL允许你做什么。我知道你首先包括堆栈,然后创建一个像这样的对象:

#include<stack>
stack<int> calcStack;

但是我想理解的是,现在我已经创建了一个堆栈,我怎么能添加数字到它,然后读出它们。从一个视频中,我看到有人这样做:

calcStack.push(1); //Adding the number one to the top of the stack
calcStack.top();   //Reading the number at the top of the stack
calcStack.pop();   //Removing the number at the top of the stack
cout << calcstack.top << endl; //This should print out one

这是否意味着我可以使用函数.push() .top() .pop()而不必在.cpp文件中定义它们?我也应该在头文件中创建我的堆栈,实现文件或文件与主类?

这是我第一次使用栈,我刚刚开始使用c++,所以任何指导将是感激的!!

您不必为堆栈定义任何函数。它是标准库的一部分。这意味着库本身已经为您定义了它们。

你所需要担心的是:

  1. 包括正确的标题
  2. 链接到正确的库(当您使用g++(而不是gcc)编译时,会自动链接到标准库)。如果你使用的是MSVC,那么它也会自动链接到标准库中。
坦率地说,我在这里提到第2点的唯一原因是,对于其他库,这是您需要做的事情。并且是"链接器错误"的常见来源。