+ /** Copy constructor */
+ Generation(const Generation& generation)
+ : chromosomes(generation.chromosomes) {
+ }
+
+ /**
+ * Copy operator.
+ *
+ * @param generation Generation from which the Chromosomes should be copied.
+ * @return Generation instance containing copied Chromosomes
+ */
+ Generation& operator=(const Generation& generation){
+ this->chromosomes = generation.chromosomes;
+ return *this;
+ }
+
+ /**
+ * Returns number of Chromosomes in current Generation
+ *
+ * @return number of Chromosomes in current Generation
+ */
+ unsigned int size() const {
+ return this->chromosomes.size();
+ }
+
+ /**
+ * Returns i-th Chromosome in the current Generation
+ *
+ * @return i-th Chromosome in the current Generation
+ */
+ _Chromosome& operator[](unsigned int i) {
+ return this->chromosomes[i];