永发信息网

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

答案:2  悬赏:20  手机版
解决时间 2021-01-03 11:32
  • 提问者网友:别再叽里呱啦
  • 2021-01-02 13:52
编译的时候出现
D:\programming\project\No_2\CGraph.cpp(83) : error C2664: 'void __thiscall std::list >::sort(struct std::greater)' : cannot convert parameter 1 from 'bool (class CVertex *,class
CVertex *)' to 'struct std::greater'
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::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);
}
}

跪求各位高手,到底是哪里出了问题啊?急啊
最佳答案
  • 五星知识达人网友:第幾種人
  • 2021-01-02 15:05
编译器用的哪个?
全部回答
  • 1楼网友:天凉才是好个秋
  • 2021-01-02 15:13
函数参数传错了,好好看一下函数原型,
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯