【发布时间】:2009-05-16 21:47:47
【问题描述】:
我有以下队列类(取自 wordpress):
#include<iostream.h>
class Queue
{
private:
int data;
Queue*next;
public:
void Enque(int);
int Deque();
}*head,*tail;
void Queue::enque(int data)
{
Queue *temp;
temp=new Queue;
temp->data=data;
temp->next=NULL;
if(heads==NULL)
heads=temp;
else
tail->next=temp;
tail=temp;
}
int Queue::deque()
{
Queue* temp;//
temp=heads;
heads=heads->next;
return temp->data;
}
我试图弄清楚为什么编译器告诉我我有多重定义 “头”和“尾”——没有成功。
edit:当编译器给出错误消息时,它会打开一个 locale_facets.tcc 文件 来自我不知道在哪里,并说错误在以下函数的第 2497 行:
bool
__verify_grouping(const char* __grouping, size_t __grouping_size,
const string& __grouping_tmp)
有人有什么见解吗?
【问题讨论】:
-
大声笑-我希望这是我的作业。我的作业是建立一个动态存储图的巨大任务。我需要这个队列来帮助我对其进行 BFS 搜索...但是点。
-
@Meir - 有什么理由你不能使用 std 队列并且必须自己实现它?听起来有点奇怪,queue 是一个非常基本且通用的标准库。
-
你能发布整个队列类吗?
-
这不是队列类,而是队列类中的一个函数...实际上没有变量“head”,也没有声明“tail”,所以有点难来帮助你。另外,你为什么要使用这个队列实现......你应该阅读你询问使用队列的其他问题的所有帖子。
-
请解释为什么你不能使用 std 队列,但为什么你可以从 wordpress 中撕下一个。