/** -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- The above line is usefulin Emacs-like editors */ /* Template for creating a new representation in EO ================================================ */ #ifndef _eoOneMax_h #define _eoOneMax_h /** * Always write a comment in this format before class definition * if you want the class to be documented by Doxygen * Note that you MUST derive your structure from EO * but you MAY use some other already prepared class in the hierarchy * like eoVector for instance, if you handle a vector of something.... * If you create a structure from scratch, * the only thing you need to provide are * a default constructor * IO routines printOn and readFrom * * Note that operator<< and operator>> are defined at EO level * using these routines */ template< class FitT> class eoOneMax: public EO { public: /** Ctor: you MUST provide a default ctor. * though such individuals will generally be processed * by some eoInit object */ eoOneMax() { // START Code of default Ctor of an eoOneMax object // END Code of default Ctor of an eoOneMax object } virtual ~eoOneMax() { // START Code of Destructor of an eoEASEAGenome object // END Code of Destructor of an eoEASEAGenome object } virtual string className() const { return "eoOneMax"; } /** printing... */ void printOn(ostream& _os) const { // First write the fitness EO::printOn(_os); _os << ' '; // START Code of default output /** HINTS * in EO we systematically write the sizes of things before the things * so readFrom is easier to code (see below) */ _os << b.size() << ' ' ; for (unsigned i=0; i::readFrom(_is); // START Code of input /** HINTS * remember the eoOneMax object will come from the default ctor * this is why having the sizes written out is useful */ unsigned s; _is >> s; b.resize(s); for (unsigned i=0; i> bTmp; b[i] = bTmp; } // END Code of input } // accessing and setting values void setB(vector & _b) { b=_b; } const vector & B() { return b; } private: // put all data here // START Private data of an eoOneMax object std::vector b; // END Private data of an eoOneMax object }; #endif