Witam !
Stworzyłem kolejkę priorytetową. Nie wiem dlaczego nie chce mi popować do wskaźnika tego czegoś twierdząc, że funkcja kolejka.pop() zwraca void a nie typ przechowywaniej struktury.
Konkretnie :
error C2679: binary '=' : no operator found which takes a right-hand operand of type 'void' (or there is no acceptable conversion)
vector<Para> MGraph::MST()
{
priority_queue<Para, vector<Para>, moje_porownanie> Kolejka;
bool* dolaczone = new bool[this->V];
for(int i=0;i<V;i++)
dolaczone[0]=false;
for(int i=0;i<V;i++)
{
dolaczone[i]=true;
for(int j=0;j<V;j++)
{
if(!dolaczone[j])
{
Para *p = new Para;
p->V1=i;
p->V2=j;
p->W=GMatrix[i][j];
Kolejka.push(*p);
}
}
}
for(int i=0;i<V;i++)
dolaczone[0]=false;
vector<Para> Tree;
Para *pom;
while(!Kolejka.empty())
{
*pom=Kolejka.pop(); // linia z błędem.
dolaczone[pom->V1]=true;
if(!dolaczone[pom->V2]==true)
Tree.push_back(*pom);
}
return Tree;
}
Może ktoś mi powiedzieć, jak wyciągnąć coś z tej kolejki ?