ďťż

Ładny brzuch

Witajcie,

Otóż mam sobie wektor składający się z:
struct POINT { int x,y; POINT (int x=0, int y=0): x(x), y(y){} }
tworzę go zwyczajnie za pomocą vector<POINT> nazwa;

Wpisuję do niego dane:
Załóżmy że do x wpisuję dane wg których ma się vector posortować.
W y mam dane które nie będą brane pod uwagę przy sortowaniu, ale są związane z x.

Jak posortować taki vector?

Proszę o odp.

Z góry dzięki

PS Najchętniej użyłbym swojej funkcji do porównywania danych (to co w funkcji qsort można użyć jako czwarty argument).



#include <algorithm> using namespace std; ... struct cmp { bool operator() (const POINT& A, const POINT& B) { return A.x < B.x; } }; int main() { ... sort(nazwa.begin(), nazwa.end(), cmp());To kryterium porównania realizuje "<". Czyli wynik tej funkcji mówi, czy A jest "mniejsze" od B. Powyższa funkcja powoduje sortowanie po x-ach rosnąco. Żeby malejąco to trzeba "return A.x > B.x".
Użytkownik twono edytował ten post 19 maj 2009, 18:16

#include <algorithm> using namespace std; ... struct cmp { bool operator() (const POINT& A, const POINT& B) { return A.x < B.x; } }; int main() { ... sort(nazwa.begin(), nazwa.end(), cmp());To kryterium porównania realizuje "<". Czyli wynik tej funkcji mówi, czy A jest "mniejsze" od B. Powyższa funkcja powoduje sortowanie po x-ach rosnąco. Żeby malejąco to trzeba "return A.x > B.x".

Dzięki wielkie za pomoc.

Sposób który podałeś robi dokładnie to, co chciałem, żeby robił ;)

  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • zsf.htw.pl
  •