#define __REVERSEACTION_H__
#include "sortaction.h"
+#include "genealgorithms.h"
+
+#include <algorithm>
+#include <sstream>
+
/**
* Reverses an interval
*
/**
* Creates a new reverse action for the interval [i,j]
*/
- ReverseAction(size_t i, size_t j):_i(i),_j(j){}
+ ReverseAction(size_t i, size_t j): SortAction(0),_i(i),_j(j){
+ }
+ ReverseAction(Interval i): SortAction(0){
+ _i = std::min(i.first,i.second);
+ _j = std::max(i.first,i.second)-1;
+ }
/**
* Applies the sort action on the gene order
}
return false;
}
+
+ /**
+ * Gives a string representation of the action, for output
+ */
+ virtual std::string toString() const{
+ std::ostringstream os;
+ os << "[" << _i << "," << _j << "]";
+ return os.str();
+ }
private:
size_t _i;
size_t _j;