Fix Copy constructor.
authorRafał Długołęcki <rafal@dlugolecki.net.pl>
Sun, 22 Mar 2015 12:06:24 +0000 (13:06 +0100)
committerRafał Długołęcki <rafal@dlugolecki.net.pl>
Sun, 22 Mar 2015 12:06:24 +0000 (13:06 +0100)
src/chromosome.h
src/fitness/wsti.h
src/main.cpp

index 7582af05a12146f5f243472b00f15760fa102903..a20c793db43d1852f1a75e79d3757594746888dd 100644 (file)
@@ -21,7 +21,9 @@ namespace genetic {
         }
 
         /** Copy constructor */
-        Chromosome(const Chromosome& chromosome) : genes(chromosome.get()) {}
+        Chromosome(const Chromosome& chromosome)
+            : genes(chromosome.get()) {
+        }
 
         Chromosome& operator=(const Chromosome&){
             return *this;
index 068590d94c815868b0d2bf6c04401932a47ef566..028c32220098425fd836d1c18580845501aad136 100644 (file)
@@ -34,10 +34,8 @@ namespace genetic {
             return span_start + (span_end - span_start) * this->fenotype() / power2N;
         }
     public:
-        WSTI(_Chromosome& chromosome, float start, float end) {
-            this->chromosome = chromosome;
-            this->span_start = start;
-            this->span_end = end;
+        WSTI(_Chromosome& _chromosome, float start, float end)
+            : chromosome(_chromosome.get()), span_start(start), span_end(end) {
         }
 
         double calculate() {
index 958c2410403fe2017250815208a807a0179e0875..60ea330e26472e87d88fab8058eeaff5d3df8d59 100644 (file)
@@ -20,7 +20,7 @@ int main() {
 
     vector<_Gene> genes;
 
-    for (int i = 0; i < 20; i++) {
+    for (int i = 0; i < 11; i++) {
         _Gene gene(rand() % 2);
         cout << "Generated gene: " << (int)gene.get() << "\n";
         genes.push_back(gene);
@@ -29,13 +29,13 @@ int main() {
     _Chromosome chromosome(genes);
 
     cout << "Entire chromosome: ";
-    for (int i = 0; i < 20; i++) {
+    for (unsigned int i = 0; i < chromosome.get().size(); i++) {
         cout << chromosome.get()[i].get();
     }
     cout << endl;
     WSTI<_Chromosome> fitness(chromosome, 0.5, 2.5);
 
-    cout << "Fitness is equal to: " << (double)fitness.calculate() << "\n";
+    cout << "Fitness is equal to: " << fitness.calculate() << "\n";
 
     return 0;
 }