【发布时间】:2016-03-03 20:00:59
【问题描述】:
我在课堂上被问到这个问题,但我们没时间了,我似乎无法在互联网上找到任何全面的信息。如果我用方括号初始化一个数组,这与创建数组的堆栈类有何不同?
我实际上是在初始化一个数组,就像在 int array[5] {1,2,3,4,5} 中所做的那样,还是我只是初始化一个指向内存中某个空间的指针,在那里存储一些数据,以及使用堆栈的成员函数来操作和操作数据?
class IntStack
{
public:
IntStack(int num) { top = 0; maxelem = num; s = new int[maxelem]; }
void push(int t)
{
if (top == maxelem) return;
s[top++] = t;
}
int pop()
{
if (top == 0) return -1;
return s[--top];
}
void display()
{
if (top == 0) { cout << "(empty)\n"; return; }
for (int t=0 ; t < top ; t++) cout << s[t] << " ";
cout << "\n";
}
int empty() { return top == 0; }
private:
int *s;
int top;
int maxelem;
这就是我们写下的代码。我正在尝试使用数组实现来理解堆栈以及与数组容器的不同之处。
编辑:
这是想通了,这是我当时在课程中的困惑。教授试图通过让我们创建自己的容器来向我们展示如何实现 STL 容器,而问题是针对教室的,因为我们使用数组创建了自己的“堆栈”。堆栈是 LIFO 结构,这是一个测试问题,要求我们辨别 c++ 数组和我们在课堂上创建的“数组堆栈”之间的区别。在提出这个问题时我误解了,并认为数组堆栈是某种 C++ 标准。
我正在尝试提高我在 SO 上的分数,以便我可以发布另一个问题,但不确定我是否应该删除问题或编辑它们以获得更好的地位。
【问题讨论】:
-
“数组的堆栈类”是什么意思?你能举个例子吗?
-
这些术语听起来像是特定于您的课堂。你可能想在课外让你的教授澄清一下,或者在下一节课开始时提出来。
-
需要更多上下文。我同意凯文的问题。我不知道这个问题可以按原样回答。
-
@ChristopherSchneider 我编辑了这个问题。我的意思更多的是使用数组实现的堆栈与使用 std::array 的不同之处。
标签: c++ arrays data-structures stack