在这个C++代码中,我写了一个队列(FIFO)的基本代码。但out()函数似乎不起作用,它会将最旧的输入返回到数组中。当函数首先被调用时,它就起作用了。但第二次没有。这里是代码:out()函数不起作用
#include<iostream>
using namespace std;
class Queue {
int que[100];
int index=0;
int f;
public:
void in(int num);
int out();
};
void Queue::in(int num){
if(index==100)
cout<<"Que is full\n";
else{
que[index]=num;
f=index;
index++;
}
}
int Queue::out(){
if(index==0)
cout<<"Queue is empty\n";
else{
if(f>=0){
return que[--index-f];
index++;
f--;
}else{
cout<<"Queue is empty";
return 0;
}
}
}
int main(){
Queue q;
q.in(101);
q.in(202);
q.in(303);
q.in(404);
cout<<q.out()<<"\n";
cout<<q.out()<<"\n";
cout<<q.out();
}
你真的需要更具体而不是说“不行”。 – 2014-09-24 16:51:45
当第一次调用它时返回101 ..(q.in(101)),但当第二次调用时,它返回值如101432,56723等。 – raiyan106 2014-09-24 16:53:16
'return que [ - index-f];'在这行之后,函数中没有更多内容会被执行。 – 2014-09-24 16:55:53