gpt4 book ai didi

c++ - 这段c++代码在做什么?

转载 作者:塔克拉玛干 更新时间:2023-11-03 08:05:13 24 4
gpt4 key购买 nike

我不知道这段代码如何工作以及为什么工作:

// postorder dfs
Iterator< Index<String<char> >, TopDown<ParentLink<Postorder> > >::Type
myIterator(myIndex);
while (goDown(myIterator));
for (; !atEnd(myIterator); goNext(myIterator))
// do something with myIterator ( Traverse Through (Suffix)-tree )

这是来自 seqan 的示例界面在此处描述:API

  1. while 如何影响 for 循环?
  2. 为什么 for 循环没有初始化?

最佳答案

您已经遇到了 C++ 的有趣部分 - 在语法上有效但人类难以解析的技术中使用语言结构。

while (goDown(myIterator));

这将“goDown(myIterator)”直到它返回 false。然后它将继续进入 for 循环。它没有任何循环 - 但没关系,因为函数 goDown 正在工作。

for (; !atEnd(myIterator); goNext(myIterator)) 

这不会初始化任何东西,但会测试它不是 atEnd(myIterator) - 如果不是,它将 goNext(myIterator)。它也可以写成一个 while 循环,以使其更容易理解:

while(!atEnd(myIterator)) 
{
goNext(myIterator));
}

所以代码将:

  1. 一直往下走,直到 goDown() 返回 false——这意味着 goDown 每次都在修改 myIterator
  2. goNext() 直到 atEnd()

关于c++ - 这段c++代码在做什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1223172/

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