2017-06-04 40 views
-4

我已经创建了一个使用数组的队列类,它最多需要两个整数。但是,我如何将两个整数同时传递给数组?使用bool Queue :: enqueue(int,int)C++传递两个整数到队列

另外我需要一个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

你将如何与做一个int? – 2017-06-04 17:29:35

+1

使您的队列通用并使用'std :: pair '? –

回答

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; 
} 
+0

假设这可能是一个家庭作业问题,我不认为这个人的教师会喜欢矢量作为创建队列的内部数据结构。如果标准库被允许使用,为什么不使用'std :: queue'或'std :: dequeue'? –

+0

那么,在那种情况下,我认为我帮助了不道德的活动。家庭作业应该由学生在没有外部帮助的情况下自己完成;-) –

+0

对于这样的情况,最好不要自己回答问题,而是鼓励学生自己找出解决方案。不要只是发布代码,也可以提供一个人可以做什么来解决问题的想法。 –