编译出现error C2664: cannot convert parameter 1 from 'bool (class CVertex *,class CVertex *)' to 。 50

编译的时候出现D:\programming\project\No_2\CGraph.cpp(83):errorC2664:'void__thiscallstd::list... 编译的时候出现
D:\programming\project\No_2\CGraph.cpp(83) : error C2664: 'void __thiscall std::list<class CVertex *,class std::allocator<class CVertex *> >::sort(struct std::greater<class CVertex *>)' : cannot convert parameter 1 from 'bool (class CVertex *,class
CVertex *)' to 'struct std::greater<class CVertex *>'
No constructor could take the source type, or constructor overload resolution was ambiguous
程序段部分如下:
class CVertex{
public:
int d;
int p;
int ID;
CVertex(){d = INFINITY; p = NULL;}
~CVertex();

};

bool pVertexComp( CVertex* x,CVertex* y)
{
if ( x->d < y->d ) return true;
else
return false;
}

void CGraph::DijkstraAlg(int s)
{
map<int, CVertex*>::iterator i,iend;
iend = mapVID_Vertex.end();

for( i=mapVID_Vertex.begin(); i != iend; i++)
{
if ( i->second->ID == s)
i->second->d = 0;
listTempMark.push_back(i->second);
}
Update(s);
while( ! listTempMark.empty() )
{
listTempMark.sort(pVertexComp);
int j = (*listTempMark.begin())->ID;
listTempMark.pop_front();
Update(j);
}
}

跪求各位高手,到底是哪里出了问题啊?急啊
展开
 我来答
百度网友22ad5e3
2012-03-16
知道答主
回答量:10
采纳率:0%
帮助的人:3.2万
展开全部
函数参数传错了,好好看一下函数原型,
追问
就是不知道哪里出问题了啊?怎么改啊?
追答
仔细琢磨,自己琢磨出来的才是精华,以后遇到大问题才不会害怕,这是一个语法错误,说明你对这些函数的用法不能掌握,找相关书籍来看,当你把你解决不了的问题彻底解决是,你在真正的掌握了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
vinix
2012-03-16 · TA获得超过214个赞
知道小有建树答主
回答量:299
采纳率:0%
帮助的人:284万
展开全部
编译器用的哪个?
追问
vc++6.0 可能是编译器问题
追答
vc6对模板支持的不怎么好,建议用最新的vs。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式