stl partition mit praedikat
-
ich bin wegen quicksort mit iteratoren gefragt worden.
ich hab ma gedacht, dass des ganze ziemlich einfach waer, von wegen
dieser schnittstelle...typedef bool (* TCompare) (TElem const &, TElem const &);
bool compare (TElem const & lhs, TElem const & rhs);
void sort (TItor begin, TItor end, TCompare compare);dass compare ein boolsches praedikat mit zwei eingangsparametern
darstellt, ist logisch.
aber intern kann mit partition nur eine funktion uebergeben werden, die
einen eingangsparameter aufweist.i = partition(begin, end, compare(*begin, *pivot)); //funktioniert so nicht [cpp] sollte dann im gesamtkontext etwa so verwendet werden nur halt statt dem bind2nd mit eigenen praedikat
typedef int TValue;
typedef vector <TValue> TVec;
typedef TVec::iterator TItor;void sort (TItor & begin, TItor & end) {
if (begin != end) {
TItor pivot = begin;
TItor i;
i = partition(begin, end, bind2nd (less <TValue> (), *pivot));
sort(begin, i);
sort(i, end);
}//if
}//sort
[cpp]jemand eine idee wie das gehen könnte?