我已经使用模板制作了一个基于数组的队列,以便用户可以确定队列中保存的数据类型,但是我无法弄清楚如何收集输入,然后从中创建该数据类型的队列。
这是我的队列
#includeusing namespace std; template class Queue { private: unique_ptr queueArray; int queueSize; int front; int rear; int numItems; public: Queue(int); itemType peekFront(); void enqueue(itemType item); void dequeue(); bool isEmpty() const; bool isFull() const; void clear(); };
我已经尝试过这种方法以及其他许多方法,但是无法弄清楚如何分辨用户输入的数据类型,然后使用该类型的数据创建队列。
int main() { const int MAXSIZE = 5; int choice; cout << "1. integer queue\n" << "2. string queue\n" << "3. float queue\n"; choice = menu(); if(choice == 1) { QueuenewQueue(MAXSIZE); int data; } else if(choice == 2) { Queue newQueue(MAXSIZE); string data; } else if(choice == 3) { Queue newQueue(MAXSIZE); float data; } else cout << "Number needs to be 1-3." << endl; cout << "Enter an item to add" << endl; cin >> data; newQueue->enqueue(data);
谢谢大家的帮助!我差不多完成了,但是现在我有了所有虚函数,如何调用peekFront()?由于虚函数不能返回itemType正确吗?