所以我试图计算堆栈中负数的总数,然后我编写了这段代码,但是它出了问题并且没有显示输出。我是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;
}
答案 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);
不会调用该函数,它只是告诉编译器它接受哪些参数以及它的返回类型是什么。