Files
DEC/individual/genome/Chromosome.h
2024-10-03 18:43:04 +07:00

28 lines
752 B
C++

#pragma once
#include <string>
#include <vector>
#include "Gene.h"
/*
Êëàññ Õðîìîñîìà
*/
class Chromosome {
friend class ChromosomeRearrangementStrategy;
friend class Derevyanko2015RecpmbinationStrategy;
friend class Genotype;
protected:
std::string name;
std::vector<Gene> 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<Gene>& _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<Gene>& getGenesAsVector() const { return genes;}
};