【发布时间】:2016-01-06 21:13:57
【问题描述】:
所以我环顾四周寻找这个问题,但仍然无法理解发生了什么。
一个队列是使用两个堆栈实现的,我完全理解,但是当涉及到peek 函数时,我就是不明白它是如何工作的。例如,
template<class T>
T somethingsomething<T>::peek()
{
T potato;
if(outStack.isEmpty() == false)
{
potato = outStack.peek();
return potato;
}
else
{
/* stuff stuff stuff*/
}
}
搞砸之后,我发现这个实现有效,但不知道为什么。当我执行 outStack.peek() 时,这不是对函数的递归调用吗?当我这样做时,代码中发生了什么以及为什么会起作用?
【问题讨论】: