所以我环顾四周寻找这个问题,但仍然无法掌握发生了什么。
一个队列是使用两个堆栈实现的,我完全理解,但是当涉及到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()时,这不是对函数的递归调用吗?当我这样做时,代码中发生了什么,为什么它会起作用?