Prosze o pomoc w kwestii sortowania wczytanych danych, chce aby zaleznie od tego czy zmienna bool "rev" z klasy "param" (linijki 29-37) jest true albo false wykonac sortowanie w kolejnosci rosnacej badz na odwrot, problem polega na tym ze nie wiem jak dodac ta zmienna bool do funkcji sortujacej (linijki 51 - 56)
return wstecz.rev?(i.get_x()<j.get_x()):(i.get_x()>j.get_x());
np. tak:
bool sort_fnc (element i,element j, param wstecz)
zamień na:
template<bool wstecz>
bool sort_fnc (const element& i, const element& j)
zmodyfikuj kod, żeby był od tej zmiennej zależny.
W kodzie przed wywołaniem sortowania:
sort(tablica_danych.begin(),tablica_danych.end(),sort_fnc);
zamień na:
sort(tablica_danych.begin(),tablica_danych.end(),wstecz?sort_fnc<true>:sort_fnc<false>);
NIE próbuj upraszczać do:
sort(tablica_danych.begin(),tablica_danych.end(),sort_fnc<wstecz>);
bo nie zadziała jeśli wstecz nie jest znane podczas kompilacji
albo stwórz zmienną globalną :P
albo (najbardziej elegancko):
stworzyć strukturę/klasę, która ma konstruktor przyjmujący wstecz, zapisujesz sobie to wstecz do pola w klasie.
Przeciążasz operator ().
coś takiego (nie kompilowałem):
struct Porownywacz
{
bool wstecz;
Porownywacz(bool wstecz) : wstecz(wstecz) {}
bool operator()(const element& i, const element& j) const
{
// twoj kod
}
};
używasz tak:
sort(tablica_danych.begin(),tablica_danych.end(),Porownywacz(wstecz));