在调用stack中的pop方法后,栈顶元素出栈,那么出栈的栈顶元素有没有被销毁呢
if (!s.empty()){
p = s.top();//获取栈顶元素
s.pop();//此处pop栈顶元素
p = p->rchild;//使用pop出去的栈顶元素?
}
此段代码可以在一个程序中正常使用,是说明pop出去的元素没有被销毁,只是出栈了,没有在栈中吗?
在调用stack中的pop方法后,栈顶元素出栈,那么出栈的栈顶元素有没有被销毁呢
if (!s.empty()){
p = s.top();//获取栈顶元素
s.pop();//此处pop栈顶元素
p = p->rchild;//使用pop出去的栈顶元素?
}
此段代码可以在一个程序中正常使用,是说明pop出去的元素没有被销毁,只是出栈了,没有在栈中吗?
出栈,只是将该元素(或叫数据)的地址从栈中移除了,但是该数据在内存中还是存在的,并把该数据的地址赋值给了p。由p持有该数据的引用,数据并没有被销毁。