1 #ifndef _BASIC_STATIC_GROVE_H_
2 #define _BASIC_STATIC_GROVE_H_
4 #include <StaticGrove.h>
18 template <
typename Tree>
26 std::vector<std::shared_ptr<Tree>>
trees;
57 void addTree(std::shared_ptr<Tree> tree)
override;
65 void removeTrees(
size_t const startIndex,
size_t const endIndex)
override;
70 void replaceTree(
size_t const index, std::shared_ptr<Tree> tree)
override;
112 #include <BasicStaticGrove.tpp>
Basic implementation of a StaticGrove.
Definition: BasicStaticGrove.h:19
Tree * nextTreePointer() override
Tree & getTreeReference(size_t const index) const override
bool hasTrees() const override
void addTree(std::shared_ptr< Tree > tree) override
std::shared_ptr< Tree > nextTreeShared() override
BasicStaticGrove()=default
Default constructor for BasicStaticGrove.
void removeTrees(size_t const startIndex, size_t const endIndex) override
size_t whileIter
Current iteration for while loop friendly methods.
Definition: BasicStaticGrove.h:30
void removeAll() override
size_t getNumTrees() const override
void removeTree(size_t const index) override
std::shared_ptr< Tree > getTreeShared(size_t const index) const override
void replaceTree(size_t const index, std::shared_ptr< Tree > tree) override
Replace tree at given index by given tree.
std::vector< std::shared_ptr< Tree > > trees
The trees contained in the grove.
Definition: BasicStaticGrove.h:26
void toZeroTree() override
Tree & nextTreeReference() override
bool hasNextTree() const override
Tree * getTreePointer(size_t const index) const override
A StaticGrove is an abstract class which declares methods to handle a set of trees.
Definition: StaticGrove.h:68