gpt4 book ai didi

c++ - for循环后面的分号是什么意思?为什么第一个循环语句中有一个j++?

转载 作者:行者123 更新时间:2023-11-30 01:02:35 25 4
gpt4 key购买 nike

我需要基于优先级队列实现我自己的 Dijkstra 算法版本,在搜索有关它的一些网站时,我看到了一个实际有效但带有奇怪的 for 循环语句的算法:

int i,j,n;
cin >> n; //number of vertexes
bool *QS = new bool [n];

//whole QS is set to false here

for(i = 0; i < n; i++) {
for(j = 0; QS[j]; j++);
for(u = j++; j < n; j++)
if(!QS[j] && (d[j] < d[u])) //d[i] is table of distances
u = j;
QS[u] = true;

//some code
}

我知道 ; after loop 意味着它是空语句,但如果我评论第二个 for-loop 这个程序停止工作,所以它实际上意味着什么。我相信这个 u = j++ 应该类似于 u = j+1 的开始形式,但我不太确定。

最佳答案

for(j = 0; QS[j]; j++); 用作j=0; while(QS[j])j++;

即找到 QS[j] 为假的第 j 个

关于c++ - for循环后面的分号是什么意思?为什么第一个循环语句中有一个j++?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55815414/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com