Wyciąganie z kolejki priorytetowej struktury i przypisanie do wskaźnika

0

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 ?

0

No bo pop() nic nie zwraca.
http://www.cplusplus.com/reference/stl/priority_queue/pop/
Użyj metody top() dla pobrania a potem pop() do usunięcia:
http://www.cplusplus.com/reference/stl/priority_queue/top/

0

Dzięki ! Głupie błąd - wstyd mi ;p

1 użytkowników online, w tym zalogowanych: 0, gości: 1