本文整理汇总了C++中QQueue::removeAll方法的典型用法代码示例。如果您正苦于以下问题:C++ QQueue::removeAll方法的具体用法?C++ QQueue::removeAll怎么用?C++ QQueue::removeAll使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类QQueue
的用法示例。
在下文中一共展示了QQueue::removeAll方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: while
QList<vertice> Grafo::Dijkstra(vertice *ini, vertice* fin)
{
for(int i = 0; i < this->vertices.size();i++)
{
this->vertices.at(i)->costoHastaAhora = INT_MAX;
this->vertices.at(i)->predecesor = NULL;
}
int indexOrigen = this->EncontrarIndexVertice(ini);
int indexMeta = this->EncontrarIndexVertice(fin);
int indexMinimoCola, indexMinimoVertices;
this->vertices.at(indexOrigen)->costoHastaAhora = 0;
QQueue<vertice*> cola;
vertice *u;
float peso;
cola.append(this->vertices.at(indexOrigen));
while(!cola.empty())
{
indexMinimoCola = this->indexElementoMenor(cola);
u = cola.at(indexMinimoCola);
indexMinimoVertices = this->EncontrarIndexVertice(u);
cola.removeAll(u);
this->vertices.at(indexMinimoVertices)->visitado = true;
for(int j = 0; j < this->vertices.at(indexMinimoVertices)->adyacentes.size(); j++)
{
if(!this->vertices.at(indexMinimoVertices)->adyacentes.at(j)->visitado)
{
peso = this->vertices.at(indexMinimoVertices)->configuracion.Distanica(&this->vertices.at(indexMinimoVertices)->adyacentes.at(j)->configuracion);
if(this->vertices.at(indexMinimoVertices)->adyacentes.at(j)->costoHastaAhora >
this->vertices.at(indexMinimoVertices)->costoHastaAhora + peso)
{
this->vertices.at(indexMinimoVertices)->adyacentes.at(j)->costoHastaAhora = this->vertices.at(indexMinimoVertices)->costoHastaAhora + peso;
this->vertices.at(indexMinimoVertices)->adyacentes.at(j)->predecesor = this->vertices.at(indexMinimoVertices);
cola.append(this->vertices.at(indexMinimoVertices)->adyacentes.at(j));
}
}
}
//SE debe remover de la cola el elemento
}
QList<vertice> ruta;
vertice *actual = this->vertices.at(indexMeta);
while(actual != NULL)
{
ruta.push_front(*actual);
actual = actual->predecesor;
}
return ruta;
}