我尝试用C ++编译这个函数但没有成功。
这是一个java代码。总的来说,有一个叫'测试'的电话。我只是想知道堆栈是否全部发送或者是否部分发送(没有7)因为s.pop()
bool test(stack<int> s, int x) {
int y;
if (!s.empty()) {
y = s.pop();
return x==y || test(s,y);
}
else return false;
}
int main ()
{
stack<int> s;
s.push(2);
s.push(5);
s.push(1);
s.push(2);
s.push(7);
int x = 4;
test(s, s.pop());
return (0);
}
答案 0 :(得分:1)
如果您使用的是std :: stack,则pop()不会返回值。您必须使用top()来访问顶部元素。然后,您可以使用pop()将其从堆栈中删除。