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