在這個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