estou implementando o algoritmo de dijkstra em c++ e estou trabalhando com list do std, mas estou com dificuldade em percorrer a lista Q até o seu final, ler seus dados, pois eu removo de um em um todos elementos, mas a lista nunca fica vazia (como se retirasse o elemento mas o endereço de memoria fica la, dai quando tendo acessar o primeiro elemento da list retorno o endereço de maemoria e não o elemento, além do mais o criterio abaixo entra em loop:
while (!listaQ.empty()) //já tentei usar isso tb while(listaQ.size());
{ for(it = listaQ.begin(); it!= listaQ.end(); it++)
{ if(d->at(it)<temp) {
{ temp= d->at(it);
u=it; }
} // quando tento imprimir o it aqui, no primeiro loop ele imprime o elemento, mas apos remover este elemento (funcao remove abaixo) ele dá erro eimprime acho q o endereço da memoria.
listaQ.remove(u);
listaS.push_back(u);
}
Pergunta
ane2009
estou implementando o algoritmo de dijkstra em c++ e estou trabalhando com list do std, mas estou com dificuldade em percorrer a lista Q até o seu final, ler seus dados, pois eu removo de um em um todos elementos, mas a lista nunca fica vazia (como se retirasse o elemento mas o endereço de memoria fica la, dai quando tendo acessar o primeiro elemento da list retorno o endereço de maemoria e não o elemento, além do mais o criterio abaixo entra em loop:
Editado por kuroiAdicionar tag CODE
Link para o comentário
Compartilhar em outros sites
0 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.