C++ 有人能解释一下(;Q.size();)的行是什么吗?
我试图理解一个源代码,但我无法理解(;Q.size();)的C++ 有人能解释一下(;Q.size();)的行是什么吗?,c++,stl,deque,que,C++,Stl,Deque,Que,我试图理解一个源代码,但我无法理解(;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 } 这样看: for(;Q.size();){//do som
行是如何工作的。有人能帮我简化一下吗?这是一个for
循环,它不关心递增的索引变量。正如Blaze指出的,它相当于while
循环
for(;Q.size();)
{
// do something while Q is not empty
}
或同等地
while(Q.size())
{
// do something while Q is not empty
}
这样看:
for(;Q.size();){//do something}
现在请阅读for
循环的定义,并查看它是否完美匹配。
正如其他人所提到的,本质上这相当于,而(Q.size())
A由三部分组成,用分号分隔:
- init语句
- 状况
- 迭代式
循环的相当于此代码:
{
init_statement
while ( condition ) {
statement
iteration_expression ;
}
}
init语句和迭代表达式可以为空,但它们之间仍然需要分号
在您的示例中,for(;Q.size();)
因此相当于:
{
while ( Q.size() ) {
statement
}
}
它与while(Q.size())
相同。或者更清楚地说,while(!Q.empty())