为了账号安全,请及时绑定邮箱和手机立即绑定

已采纳回答 / 慕瓜4413491
因为每次元素入栈后,栈顶都做了加1操作,指向下一个元素入栈将要存放的位置,出栈时,需要将栈顶减1才能取到元素

最赞回答 / 明阳青昀
while循环简单易懂,for也可以for(int i = pStack.stackLength-1;i>=0;i--){    pStack->pop(elem)    cout<<num[elem]}

最新回答 / 程序员麦麦
模板的编译是不能分离的,所以函数实现要写在头文件中。

最新回答 / 獨灬調
放多点代码上来,你这个问题应该不是错在demo里面

已采纳回答 / dadisdad
栈满的时候,m_iTop比size大一,因为前面push时m_iTop会++

最新回答 / 慕田峪7551596
用例是 实例化一个对(并非实例化多个)象,析构函数是释放数组(因为申请了N个内存)。

已采纳回答 / BingBing_Elf
在我看来,存在即有意义。栈和队列是一种逻辑结构。数组只是栈和队列的一种实现方式,栈和队列也可以用链表来实现。栈和队列与数组不是并列结构。

最赞回答 / 慕粉1213598641
看下这个变量什么时候定义好,作用域是什么

最新回答 / 慕田峪2224101
template<typename T> int& MyStack<T>::operator[](int i) {     return m_pBuffer[i];}我是这么实现的,但是好像行不通报错: no match for 'operator[]' (operand types are 'char [17]' and 'MyStack<int>')|但是我感觉这样可以重载呀

最新回答 / KunKunKKK
我也是这种情况 写的就是m_iTop-1 为什么输出结果是这个样子 求解答

已采纳回答 / oldlin
因为你结果显示栈长度是4,所以pop应该是正确的,多一个o应该是你多输出了一个o,你检查一下能输出elem的语句是不是两个,造成重复输出。另外你可以展示一下你的代码,看到你的代码才能准确的告诉你原因

最新回答 / qq_梦飞扬_7
检查是否在头文件中声明,是否在编译中有对应的obj文件

最新回答 / 慕尼黑8374427
怎么可能啊,m_iTop最多就是n,push()方法一开始不是有判断是否为full么,你push第n+1个元素的时候就直接return false,根本执行不到m_iTop++
课程须知
"本课程是数据结构初级课程 1、熟练掌握C++语言基础语法"
老师告诉你能学到什么?
1、栈的工作原理 2、栈的实现方法及编码技巧 3、栈模板的编码技巧和使用技巧 4、数制转换编程思路及栈的作用 5、括号匹配编程思路及栈的作用

微信扫码,参与3人拼团

意见反馈 帮助中心 APP下载
官方微信
友情提示:

您好,此课程属于迁移课程,您已购买该课程,无需重复购买,感谢您对慕课网的支持!

本次提问将花费2个积分

你的积分不足,无法发表

为什么扣积分?

本次提问将花费2个积分

继续发表请点击 "确定"

为什么扣积分?

举报

0/150
提交
取消