gpt4 book ai didi

c++ - 在 C++ 中用 for(;condition;) 替换 while(condition) 有什么理由吗?

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:48:22 25 4
gpt4 key购买 nike

看起来像

while( condition ) {
//do stuff
}

完全等同于

for( ; condition; ) {
//do stuff
}

是否有任何理由使用后者而不是前者?

最佳答案

据我所知,没有好的理由。您使用不增加任何内容的 for 循环是故意误导人们。

更新:

根据 OP 对问题的评论,我可以推测您如何在实际代码中看到这样的结构。我以前见过(并使用过)这个:

lots::of::namespaces::container::iterator iter = foo.begin();
for (; iter != foo.end(); ++iter)
{
// do stuff
}

但这就是我将要离开的 for 循环的范围。也许您的项目曾经有一个看起来像那样的循环。如果您在循环中间添加删除容器元素的代码,您可能必须仔细控制 iter 的递增方式。这可能导致代码看起来像这样:

for (; iter != foo.end(); )
{
// do stuff

if (condition)
{
iter = foo.erase(iter);
}
else
{
++iter;
}
}

但是,这不能成为不花五秒钟将其更改为 while 循环的借口。

关于c++ - 在 C++ 中用 for(;condition;) 替换 while(condition) 有什么理由吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1379246/

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