如何遍历向量中的所有子向量?

Bul*_*127 5 c++ vector

可以说我有一堂课Foo.它包含一个Foo类型的向量.如何编写一个循环来迭代foo中的向量并不断迭代子向量,直到我们达到向量on为空的级别

class Foo
{
  Foo();
  std::vector<Foo> foos;
}
Run Code Online (Sandbox Code Playgroud)

我可以这样做迭代它,但我怎么能递归地遍历原始向量内的foo对象中的向量,直到我达到向量为空的水平?

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

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

   for ( itr = f.foos.begin(); itr!=f.foos.end(); ++itr )
   {
   }
}
Run Code Online (Sandbox Code Playgroud)

Exc*_*yon 8

使用递归:

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
        }
    }
}
Run Code Online (Sandbox Code Playgroud)