显示没有输出

时间:2014-10-12 03:40:32

标签: c++ data-structures stack

所以我试图计算堆栈中负数的总数,然后我编写了这段代码,但是它出了问题并且没有显示输出。我是c ++的初学者,所以我相信这是错误的。

#include <iostream>
#include <stack>
using namespace std;

size_t i(stack<int> s){
    int count=0;

    while(s.size() !=0){

        if(s.top()<0){
            count++;
            s.pop();

        }       else if(s.top()>0){
            s.pop();
        }       else{}

        cout<<count<<endl;
    }
    return count;
}
int main(){

    stack<int> s;

    s.push(-1);
    s.push(2);
    s.push(-2);

    size_t i(stack<int> s);

    return 0;
}

1 个答案:

答案 0 :(得分:0)

main()功能中,您不会致电i(),只需重新声明即可。

#include <iostream>
#include <stack>
using namespace std;

size_t i(stack<int> s){
    int count=0;

    while(s.size() !=0){

        if(s.top()<0){
            count++;
            s.pop();

        }       else if(s.top()>0){
            s.pop();
        }       else{}

        cout<<count<<endl;
    }
    return count;
}
int main(){

    stack<int> s;

    s.push(-1);
    s.push(2);
    s.push(-2);

    size_t i(stack<int> s); // this DOES NOT call the function

    i(s); // <== THIS calls the function!!!

    return 0;
}

您的语句size_t i(stack<int> s);不会调用该函数,它只是告诉编译器它接受哪些参数以及它的返回类型是什么。