【发布时间】:2018-03-25 02:09:56
【问题描述】:
我有一个关于家庭作业的问题。我无法让我的 enqueue() 或 dequeue() 函数工作。 visual Studio 说该类没有名称的成员。我已经包含了 t 指令和我的所有代码。
我也不确定代码中的其他所有内容是否正确。
说明 编写如下定义的模板队列类: 私有数据成员:一个 STL 列表 公共成员函数: -空的 -尺寸 -入队 -双端队列 -正面 -背部 然后写一个驱动来测试上面的队列类。
我不知道标题是否正确,但这是我能想到的。
//Header File
#include <iostream>
#include <list>
#include <queue>
using namespace std;
template<typename queueElement>
class Queue
{
public:
bool empty() const;
queueElement size();
void enqueue(const queueElement & value);
void dequeue();
queueElement front();
queueElement back();
private:
list <queueElement> aList;
};
template<typename queueElement>
inline bool Queue<queueElement>::empty() const
{
return aList.empty();
}
template<typename queueElement>
queueElement Queue<queueElement>::size()
{
return size;
}
template<typename queueElement>
void Queue<queueElement>::enqueue(const queueElement & value)
{
aList.push_back(value);
}
template<typename queueElement>
void Queue<queueElement>::dequeue()
{
if (!aList.empty())
{
aList.pop_front();
}
else
{
cout << "Queue is Empty!" << endl;
}
}
template<typename queueElement>
queueElement Queue<queueElement>::front()
{
return aList.front();
}
template<typename queueElement>
queueElement Queue<queueElement>::back()
{
return aList.back();
}
这是我要测试的驱动程序,它是显示错误的地方。
//Driver
#include <iostream>
#include <queue>
#include <list>
#include "Header.h"
using namespace std;
int main()
{
list<int> intList;
for (int i = 0; i < 20; i++)
{
intList.enqueue(i); //problem with enqueue
}
cout << "Size: " << intList.size() << endl;
intList.dequeue(); //problem with dequeue
intList.dequeue(); //problem with dequeue
cout << "Size after dequeue: " << intList.size() << endl;
cout << "Front: " << intList.front() << endl;
cout << "Back: " << intList.back() << endl;
system("pause");
return 0;
}
【问题讨论】:
标签: c++ list templates stl queue