关于栈的一个问题
C++ Primer 3rd P128里说:
"作为最后一个例子我们考虑栈stack 的设计栈是一个基本的计算机科学的数据抽
象它允许以后进先出LIFO 的顺序放入或取出数值栈的两个基本操作是向栈中压入
push 一个新的值以及从栈中弹出pop 最后的值为讨论方便假设我们用vector
来实现栈
我们的栈维护了一个对象top 它表示下一个可用来压入数据值的槽要实现压入push
语义我们必须把这个值赋给由top 表示的槽然后再将top 增加1 这种情况需要哪种形式
的递增操作符呢我们希望先使用当前的值然后再把它加1 这正好是后置形式的行为.stack[ top++ ] = value;"
这就是说压栈得时候是先压,后移动栈顶指针,但是汇编上讲得是:“在压栈得时候,先将sp减1,压入一个值,再减1,再压”
也就是说先改变栈顶指针,后压入元素。
请问高手到底应该怎样理解?按第一种说发,栈顶TOP每次都指向了一个空值,然后压入值,然后再指向空值,第二种的话是相当于top始终指向栈顶得元素(非空值)。。