sortowanie wczytanych plikow zaleznie od zmiennej bool (rosnaco lub malejaco) oraz zapis

0

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)

http://pastebin.com/GXfUruCQ

1
return wstecz.rev?(i.get_x()<j.get_x()):(i.get_x()>j.get_x());
2

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));

1 użytkowników online, w tym zalogowanych: 0, gości: 1