gpt4 book ai didi

c++ - 堆栈基础

转载 作者:行者123 更新时间:2023-11-28 00:38:12 25 4
gpt4 key购买 nike

我有一个关于堆栈的快速问题,我一直在想这个问题。

如果你给变量一个值,然后将它们压入栈中,一旦它们被放入栈中,它们是否仍然包含相同的值,或者这些值是否会变为“空”并且你必须在栈中改变它们?

按照我的理解,一旦你从堆栈中弹出一个变量,它就会返回到变量被压入之前的值,对吗?但是变量在被推送时是否也会保留其值?

提前致谢!

最佳答案

对于 : 推送内容对原始内容没有影响,除非你 push esp,因为 PUSH 指令通常会修改 ESP(或 sp rsp,取决于当前的处理器模式)。

Pop 将用当前位于堆栈顶部的内容覆盖寄存器/位置的当前内容。当且仅当你的推送和弹出是平衡的时候,这将恢复以前的值,所以你是

对于 :如果您使用移动语义,插入某些东西可能会破坏原件。有可能使事情过载,所以同样的事情也会发生,但通常是非常不可取的(至少可以这么说)。

弹出只是从堆栈中移除一个项目。您从堆栈顶部复制一个项目(或您可以以类似堆栈的方式使用的集合,例如 vectordeque),然后分别弹出以删除堆栈中的那个项目。

关于c++ - 堆栈基础,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20110256/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com