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);
}
Question
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:
Edited by kuroiAdicionar tag CODE
Link to comment
Share on other sites
0 answers to this question
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.