䖝二369 2021-10-12 15:33 采纳率: 0%
浏览 35

关于STL中,栈stack的出栈操作pop

在调用stack中的pop方法后,栈顶元素出栈,那么出栈的栈顶元素有没有被销毁呢

if (!s.empty()){
            
    p = s.top();//获取栈顶元素
    s.pop();//此处pop栈顶元素
    p = p->rchild;//使用pop出去的栈顶元素?
}

此段代码可以在一个程序中正常使用,是说明pop出去的元素没有被销毁,只是出栈了,没有在栈中吗?

  • 写回答

1条回答 默认 最新

  • 凌风游 2021-10-12 15:43
    关注

    出栈,只是将该元素(或叫数据)的地址从栈中移除了,但是该数据在内存中还是存在的,并把该数据的地址赋值给了p。由p持有该数据的引用,数据并没有被销毁。

    评论

报告相同问题?

问题事件

  • 创建了问题 10月12日