C 将两个整数进入队列

c++ pass two integers into queue

本文关键字:整数 队列 两个      更新时间:2023-10-16

我已经使用数组创建了一个队列类,最多必须容纳两个整数。但是,如何一次将两个整数传递到阵列呢?使用布尔队列:: inqueue(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

为什么要使用队列的定义?您的设计似乎存在缺陷。但是,我仍然使用向量来编写一个工作代码,该向量将解决您的目的(尽管我对您要在inqueue/dequeue操作中添加/删除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;
}