gpt4 book ai didi

c++ - 如何遍历一个 vector 中的所有子 vector ?

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:07:50 25 4
gpt4 key购买 nike

假设我有一个 Foo 类。它包含一个 Foo 类型的 vector 。如何编写一个循环来遍历 foo 中的 vector 并不断遍历子 vector ,直到我们达到其中一个 vector 为空的级别

class Foo
{
Foo();
std::vector<Foo> foos;
}

我可以这样做来迭代它,但是我如何递归地迭代原始 vector 中 foo 对象中的 vector ,直到达到 vector 为空的级别?

Foo f;
if( !f->foos.empty() )
{

std::vector<Foo>::const_iterator itr;

for ( itr = f.foos.begin(); itr!=f.foos.end(); ++itr )
{
}
}

最佳答案

使用递归:

class Foo
{
Foo();
std::vector<Foo> foos;

void iterate()
{
std::vector<Foo>::const_iterator itr;

for ( itr = foos.begin(); itr!=foos.end(); ++itr )
{
// do stuff breadth-first
(*itr).iterate();
// do stuff depth-first
}
}
}

关于c++ - 如何遍历一个 vector 中的所有子 vector ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16695248/

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