可以说我有一堂课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)
使用递归:
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)
| 归档时间: |
|
| 查看次数: |
729 次 |
| 最近记录: |