Powiedzmy, że mam klasę Foo. Zawiera wektor typu Foo. Jak można napisać pętlę iterację wektora w foo i nieustannie iterację wektorów sub aż osiągniemy poziom, na którym na wektorów jest pustyJak iterować przez wszystkie podektory w wektorze?
class Foo
{
Foo();
std::vector<Foo> foos;
}
mogę to zrobić iteracyjne go przez, ale w jaki sposób iteruję wektorami w obiektach foo wewnątrz oryginalnego wektora rekurencyjnie, aż osiągnę poziom, w którym wektor jest pusty?
Foo f;
if(!f->foos.empty())
{
std::vector<Foo>::const_iterator itr;
for (itr = f.foos.begin(); itr!=f.foos.end(); ++itr)
{
}
}
Jeśli Foo ma wektor Foos, wtedy otrzymasz przepełnienie stosu z powodu natury rekursywnej. Jesteś pewien, że to nie jest wektor Bar? –
@ ChristristBales ma rację, ta struktura danych faktycznie implementuje drzewo ... – Exceptyon
Opublikowany kod jest niedozwolony i nie kompiluje się z g ++ i typowymi opcjami (w tym '-D_GLIBCXX_CONCEPT_CHECKS -D_GLIBCXX_DEBUG -D_GLIBCXX_DEBUG_PEDANTIC', co zmienia wiele nieokreślonych zachowanie na twarde błędy). –