请问哈这个程序是错在哪里?本人是初学者,还有很多不懂的地方,希望大家帮忙哈。

[复制链接]
查看11 | 回复2 | 2010-11-7 23:00:29 | 显示全部楼层 |阅读模式
#include
#include
using namespace std;
typedef int ElemType;
struct Queue{
ElemType*queue;
int front,rear,len;
int MaxSize;
};
void InitQueue(Queue& Q)
{
Q.MaxSize=10;
Q.queue=new ElemType[Q.MaxSize];
Q.front=Q.rear=0;
//cin>>queue;
}
void EnQueue(Queue& Q,ElemType item)
{
if((Q.rear+1)%Q.MaxSize==Q.front){
int k=sizeof(ElemType);
Q.queue=(ElemType*)realloc(Q.queue,2*Q.MaxSize*k);
if(Q.rear!=Q.MaxSize-1)
{

for(int i=0;i>Q.queue;
Queue a;
ElemType w;
InitQueue(a);
EnQueue(a,w);
cout.\shunxu.cpp(36) : error C2679: 二进制“>>”: 没有找到接受“ElemType *”类型的右操作数的运算符(或没有可接受的转换)

回复

使用道具 举报

千问 | 2010-11-7 23:00:29 | 显示全部楼层
cin>>Q.queue;queue其实是类Queue中定义的指向int变量的指针,改为cin>>*(Q.queue),应该就没有问题了,可以吧queue看做为(int *)类型,重定向操作符不支持这种类型
回复

使用道具 举报

千问 | 2010-11-7 23:00:29 | 显示全部楼层
改成Q.queue = new ElemType; cin>>*Q.queue;queue 要初始化
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行