簡體   English   中英

有人可以解釋一下 for(;Q.size();) 的作用嗎?

[英]Can someone please explain what the line for(;Q.size();) does?

我試圖理解一個源代碼,但我無法弄清楚for(;Q.size();)這行是如何工作的。 有人可以幫我簡化一下嗎?

for語句由三部分組成,用分號分隔:

  • 一個初始化語句
  • 一個條件
  • 迭代表達式

for循環等效於以下代碼:

{
    init_statement 
    while ( condition ) { 
        statement 
        iteration_expression ; 
    }
}

init-statementiteration_expression可以為空,但它們之間的分號仍然是必需的。

在您的示例中, for(;Q.size();)因此相當於:

{
    while ( Q.size() ) { 
        statement 
    }
}

這樣看:

for(<do nothing>;Q.size();<do nothing>) {//do something}

現在閱讀for循環的定義,看看它是否完美契合。 正如其他人所提到的,本質上這相當於while(Q.size())

這是一個for循環,它不關心遞增的索引變量。 正如 Blaze 指出的那樣,它相當於一個while循環。

for(;Q.size();)
{
   // do something while Q is not empty
}

或等效地

while(Q.size())
{
   // do something while Q is not empty
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM