java stack - pop

时间:2013-02-19 22:10:49

标签: c++ stack pop

我尝试用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);
}

1 个答案:

答案 0 :(得分:1)

如果您使用的是std :: stack,则pop()不会返回值。您必须使用top()来访问顶部元素。然后,您可以使用pop()将其从堆栈中删除。