From aa0437dc11c0d920051dc56032d472ea2d67b6be Mon Sep 17 00:00:00 2001 From: jeggermo Date: Thu, 18 Apr 2002 13:56:36 +0000 Subject: [PATCH] new printOn and readFrom functions (they look more like the eoBit ones) --- eo/src/gp/eoParseTree.h | 41 ++++++++++++++++++++++++++++++----------- 1 file changed, 30 insertions(+), 11 deletions(-) diff --git a/eo/src/gp/eoParseTree.h b/eo/src/gp/eoParseTree.h index ce9c656f..af684acf 100644 --- a/eo/src/gp/eoParseTree.h +++ b/eo/src/gp/eoParseTree.h @@ -108,15 +108,12 @@ public : */ void printOn(std::ostream& os) const { - EO::printOn(os); - /* - * old code which caused problems for paradisEO - * now we use EO::readFrom(is) - * - os << fitness() << ' '; - */ - std::copy(ebegin(), eend(), ostream_iterator(os)); + os << ' '; + + os << size() << ' '; + + std::copy(ebegin(), eend(), std::ostream_iterator(os, " ")); } /** @@ -125,20 +122,42 @@ public : */ void readFrom(std::istream& is) { - EO::readFrom(is); + + + EO::readFrom(is); + + unsigned sz; + is >> sz; + + vector v(sz); + + unsigned i; + + for (i = 0; i < sz; ++i) + { + Node node; + is >> node; + v[i] = node; + } + parse_tree tmp(v.begin(), v.end()); + swap(tmp); /* * old code which caused problems for paradisEO - * now we use EO::readFrom(is) * + * this can be removed once it has proved itself + EO::readFrom(is); + + // even older code FType fit; is >> fit; fitness(fit); - */ + std::copy(istream_iterator(is), istream_iterator(), back_inserter(*this)); + */ } };