䖝二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日

悬赏问题

  • ¥15 求一份STM32F10X的I2S外设库
  • ¥15 android 打包报错
  • ¥15 关于stm32的问题
  • ¥15 ncode振动疲劳分析中,noisefloor如何影响PSD函数?
  • ¥50 寻找fpga的benchmark
  • ¥50 如何在arduino上,实现用4×4矩阵键盘按键控制2004显示屏输出图中显示功能的代码?
  • ¥15 P1口接8个发光二极管,利用定时计数器1编写程序
  • ¥20 keil5编译找不到.h文件该如何解决
  • ¥15 安卓EVS如何开启服务正常实现功能
  • ¥15 canal读取mysql时报错