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

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

最新回答 / 慕尼黑8374427
怎么可能啊,m_iTop最多就是n,push()方法一开始不是有判断是否为full么,你push第n+1个元素的时候就直接return false,根本执行不到m_iTop++

最新回答 / 慕移动9181930
点击讨论框左边那个灰色的相机试试insert写错了哦~\(≧▽≦)/~

最赞回答 / 后苍
......你这是干嘛?看得我头皮发麻。。。

最新回答 / 神奇的二宝
是VS,可以用codeblock

最新回答 / 慕标6516834
elem只是作为一个中间值,做一个跳板,在m_iTop下标减一,指向出栈,如果写成m_pBuffer[m_iTop] = elem,因为传递的是引用,那么你的m_pBuffer[m_iTop]的值就被赋值为你主函数传递的值。个人见解,理解错了,勿喷。

最新回答 / BingBing_Elf
首先,我觉得你可能没明白栈顶元素的位置,它的位置一直是在一个空位置,这样才可以有位置来存储新的进栈元素,这也是老师说为什么m_iTop这个角标和元素个数相等的原因,也就是说,当你元素为5个时,存储的角标为0-4,但是你的m_iTop在5的位置。所以,在空栈的情况下,是不是首位置就应该是空的,即它的角标为0,当一个元素入栈后,就可以插入到角标为m_iTop的位置了,插入后一定要进行m_iTop++,让指针指向下一个位置,以便下一个元素的入栈。希望可以帮到你(✿◡‿◡)

最赞回答 / 我是一只小蜗牛
因为C++ 默认的拷贝构造函数是浅拷贝,咋们案例是值这种东西,所以可以直接赋值;但是如果涉及到指针,那么用浅拷贝容易造成内存泄漏,因为你的地址是一样的,释放两次会出现内存泄漏,这时候你就要自己实现拷贝构造函数了,而不能使用默认的拷贝构造函数

最新回答 / 晨墨_V
因为你是先入栈再赋值need。第一次循环的时候,need==0,所以直接need = ']',pNeed里有],第二次循环need==),然后满足条件。case'[':if (need != 0){cout << "第" << i + 1 << "次入另一个栈:";pNeed->push(need);cout << need<<endl;}need = ']';break;
课程须知
"本课程是数据结构初级课程 1、熟练掌握C++语言基础语法"
老师告诉你能学到什么?
1、栈的工作原理 2、栈的实现方法及编码技巧 3、栈模板的编码技巧和使用技巧 4、数制转换编程思路及栈的作用 5、括号匹配编程思路及栈的作用

微信扫码,参与3人拼团

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

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

本次提问将花费2个积分

你的积分不足,无法发表

为什么扣积分?

本次提问将花费2个积分

继续发表请点击 "确定"

为什么扣积分?

举报

0/150
提交
取消