queue<int> q;
int start;
q.push(start);
while(!q.empty()){
int now=q.front();
q.pop();
// update all node 这里是重点,更新所有节点
for(int i=0;i<n;i++){
if(dist[now]+g[now][i]<dist[i]){
dist[i]=dist[now]+g[now][i];
if(!visited[i])
{
visited[i]=true;
q.push(i);
}
}
}
//now maybe update later; 这里也是重点,出队列后,还可能重新放进去,所以去除标记。
visited[now]=false;
}