#pragma once #include #include #include "Gene.h" /* Класс Хромосома */ class Chromosome { friend class ChromosomeRearrangementStrategy; friend class Derevyanko2015RecpmbinationStrategy; friend class Genotype; protected: std::string name; std::vector genes; public: Chromosome(std::string _name) : name(_name) {}; Chromosome(std::string _name, Gene gene) : name(_name), genes(1, gene) {}; Chromosome(std::string _name, const std::vector& _genes) : name(_name), genes(_genes) {}; void insertGene(Gene gene, int pos = 0); void insertGeneToEnd(Gene gene, int pos = 0); std::string getName() const { return name;} const std::vector& getGenesAsVector() const { return genes;} };