X-Git-Url: https://git.dlugolecki.net.pl/?a=blobdiff_plain;f=src%2Fchromosome.h;h=08d24c92c5b422290c0c3198ebf0be700b418963;hb=df033a74e9dae48ba6a9efe3b0a5ad03c5caa324;hp=7399ea45959607575d476c741b316b49913efb41;hpb=af69896de7f61e773e62dfdcfa75f7788dd0dd37;p=genetic.git diff --git a/src/chromosome.h b/src/chromosome.h index 7399ea4..08d24c9 100644 --- a/src/chromosome.h +++ b/src/chromosome.h @@ -24,6 +24,7 @@ namespace genetic { */ vector<_Gene> genes; + template friend class Chromosome; public: /** * Default constructor @@ -41,7 +42,7 @@ namespace genetic { /** Copy constructor */ Chromosome(const Chromosome& chromosome) - : genes(chromosome.get()) { + : genes(chromosome.genes) { } /** @@ -51,15 +52,26 @@ namespace genetic { * @return Chromosome instance containing copied Genes */ Chromosome& operator=(const Chromosome& chromosome) { - this->genes = chromosome.get(); + this->genes = chromosome.genes; return *this; } /** - * Allows read-only access to Chromosome Genes + * Returns number of Genes in current Chromosome + * + * @return number of Genes in current Chromosome + */ + unsigned int size() const { + return this->genes.size(); + } + + /** + * Returns i-th Gene in the current Chromosome + * + * @return i-th Gene in the current Chromosome */ - vector<_Gene> get() const { - return this->genes; + _Gene& operator[](unsigned int i) { + return this->genes[i]; } }; }