我使用数组创建了一个队列类,它必须最多包含两个整数。但是我如何一次将两个整数传递给数组呢?使用bool Queue :: enqueue(int,int)
我还需要一个dequeue(),它打印两个整数并将它们从队列中抛出。有任何建议如何实现这一目标?
class Queue {
private:
int * table;
int front;
int length;
const int size=2;
public:
Queue(int n);
~Queue();
bool isEmpty();
bool enqueue(int, int);
bool dequeue();
void print();
};
Queue::Queue(int n){
n=size;
length=0;
front=0;
table=new int[n];
}
Queue::~Queue(){
delete [] table;
}
bool Queue::isEmpty(){
if(length==size)
return false;
else
return true;
}
bool Queue::enqueue(int , int){
if (length == size)
return -1; // Error, Queue is full
now i need to pass two integers if it it empty
答案 0 :(得分:0)
为什么要使用队列的定义?好像你的设计有一个缺陷。但是我仍然使用向量编写了一个可以解决你的目的的工作代码(虽然我怀疑你想通过在入队/出队操作中添加/删除2个项目来实现什么)
#include <iostream>
#include <vector>
using namespace std;
class Queue {
vector<int> table;
const int CAPACITY = 2;
public:
bool isEmpty();
bool enqueue(int, int);
void dequeue();
void print();
};
bool Queue::isEmpty(){
if(table.size())
return false;
else
return true;
}
bool Queue::enqueue(int a, int b){
if (table.size())
return false; // Error, Queue is full
table.push_back(a);
table.push_back(b);
return true;
}
void Queue::dequeue(){
if(!table.size())
return; //queue is empty
table.pop_back();
table.pop_back();
}
void Queue::print(){
if(!table.size()){
cout << "Queue is empty" << endl;
return;
}
cout << table[0] << "," << table[1] << endl;
}
int main()
{
//Make a variable of our container
Queue queue;
queue.enqueue(1,2);
queue.print();
queue.dequeue();
queue.print();
return 0;
}