我正在使用C ++中的字符数组编写一个堆栈示例。
按如下方式访问堆栈时:
while (stack->notEmpty()){
stack->display();
stack->pop();
}
它表明只有属于堆栈的字符存在:
+
2
3
---
+
2
---
+
---
(empty)
但是,当试图以这种方式访问函数返回的字符时:
while (stack->notEmpty()){
char c = stack->pop();
cout << c << "\n";
}
它返回字符:
═
3
2
+
这让我觉得我的功能有问题,但是当我没有存储返回的角色时它会起作用。我已经在当前的代码中做了解决方法,但我想知道是否有人看到任何可能导致此问题的内容。
我使用以下方法创建堆栈:
Stack *stack = new Stack(1024);
通过以下方式访问:
char pop(){
if (!(top == 0)){
char return_char = stack[top];
--top;
return return_char;
}
else{
char return_char = stack[top];
top = 0;
return return_char;
}
}
感谢任何想法和帮助!
粘贴完整标题here