diff --git a/eo/src/eoVector.h b/eo/src/eoVector.h index c9adcac03..a57493352 100644 --- a/eo/src/eoVector.h +++ b/eo/src/eoVector.h @@ -1,31 +1,24 @@ -// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- +/* (C) GeNeura Team, 2000 - EEAAX 1999 - Maarten Keijzer 2000 -//----------------------------------------------------------------------------- -// eoVector.h -// (c) GeNeura Team, 2000 - EEAAX 1999 - Maarten Keijzer 2000 -/* - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2 of the License, or (at your option) any later version. +This library is free software; you can redistribute it and/or +modify it under the terms of the GNU Lesser General Public +License as published by the Free Software Foundation; either +version 2 of the License, or (at your option) any later version. - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. +This library is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +Lesser General Public License for more details. - You should have received a copy of the GNU Lesser General Public - License along with this library; if not, write to the Free Software - Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +You should have received a copy of the GNU Lesser General Public +License along with this library; if not, write to the Free Software +Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - Contact: todos@geneura.ugr.es, http://geneura.ugr.es +Contact: eodev-main@lists.sourceforge.net +Old contact: todos@geneura.ugr.es, http://geneura.ugr.es Marc.Schoenauer@polytechnique.fr - mak@dhi.dk - - CVS Info: $Date: 2006-12-02 11:36:29 $ $Header: /home/nojhan/dev/eodev/eodev_cvs/eo/src/eoVector.h,v 1.18 2006-12-02 11:36:29 kuepper Exp $ $Author: kuepper $ - - */ -//----------------------------------------------------------------------------- + mak@dhi.dk +*/ #ifndef _eoVector_h #define _eoVector_h @@ -34,13 +27,13 @@ #include #include -/** - - Base class for fixed length chromosomes, just derives from EO and std::vector and - redirects the smaller than operator to EO (fitness based comparison). GeneType - must have the following methods: void ctor (needed for the std::vector<>), copy ctor, +/** Base class for fixed length chromosomes +It just derives from EO and std::vector and redirects the smaller than +operator to EO (fitness based comparison). +GeneType must have the following methods: void ctor (needed for the +std::vector<>), copy ctor, */ template class eoVector : public EO, public std::vector @@ -69,71 +62,91 @@ public: /// copy ctor abstracting from the FitT template eoVector(const eoVector& _vec) : std::vector(_vec) - {} + {} - // we can't have a Ctor from a std::vector, it would create ambiguity - // with the copy Ctor - void value(const std::vector& _v) - { - if (_v.size() != size()) // safety check - { - if (size()) // NOT an initial empty std::vector - std::cout << "Warning: Changing size in eoVector assignation"<& _v) + { + if (_v.size() != size()) // safety check + { + if (size()) // NOT an initial empty std::vector + std::cout << "Warning: Changing size in eoVector assignation"<::operator< bool operator<(const eoVector& _eo) const - { - return EO::operator<(_eo); - } + { + return EO::operator<(_eo); + } /// printing... virtual void printOn(std::ostream& os) const - { - EO::printOn(os); - os << ' '; + { + EO::printOn(os); + os << ' '; - os << size() << ' '; + os << size() << ' '; - std::copy(begin(), end(), std::ostream_iterator(os, " ")); - } + std::copy(begin(), end(), std::ostream_iterator(os, " ")); + } /// reading... virtual void readFrom(std::istream& is) - { - EO::readFrom(is); - - unsigned sz; - is >> sz; - - resize(sz); - unsigned i; - - for (i = 0; i < sz; ++i) { - AtomType atom; - is >> atom; - operator[](i) = atom; + EO::readFrom(is); + + unsigned sz; + is >> sz; + + resize(sz); + unsigned i; + + for (i = 0; i < sz; ++i) + { + AtomType atom; + is >> atom; + operator[](i) = atom; + } } - } }; -/// to avoid conflicts between EO::operator< and std::vector::operator< +/** Less than + +This is impemented to avoid conflicts between EO::operator< and +std::vector::operator< +*/ template bool operator<(const eoVector& _eo1, const eoVector& _eo2) { return _eo1.operator<(_eo2); } + +/** Greater than + +This is impemented to avoid conflicts between EO::operator> and +std::vector::operator> +*/ template bool operator>(const eoVector& _eo1, const eoVector& _eo2) { return _eo1.operator>(_eo2); } + #endif + + +// Local Variables: +// coding: iso-8859-1 +// mode: C++ +// c-file-offsets: ((c . 0)) +// c-file-style: "Stroustrup" +// fill-column: 80 +// End: