[C++] Tworzenie i sortowanie vectora

Persja
Użytkownik
Użytkownik
Posty: 3
Rejestracja: 18 lis 2013, o 17:52
Płeć: Kobieta
Lokalizacja: Warszawa

[C++] Tworzenie i sortowanie vectora

Post autor: Persja »

Witam wszystkich
Mam problem z vecotorem. Po pierwsze jak się tworzy vector , który ma zawierać pary liczb i pod drugie jak go posortować według jednej z liczb z pary? Z góry dziękuję za odpowiedź
Ostatnio zmieniony 18 kwie 2014, o 13:30 przez Afish, łącznie zmieniany 1 raz.
Powód: Staraj się lepiej dobierać nazwy tematów, tak by wskazywały o czym jest treść zadania.
Awatar użytkownika
Dasio11
Moderator
Moderator
Posty: 10223
Rejestracja: 21 kwie 2009, o 19:04
Płeć: Mężczyzna
Lokalizacja: Wrocław
Podziękował: 40 razy
Pomógł: 2361 razy

[C++] Tworzenie i sortowanie vectora

Post autor: Dasio11 »

Deklaracja

std::vector< std::pair< double, double > > wektor;

tworzy pusty wektor par liczb typu double.

Sortowanie: zależy, czy chcesz mieć własne, czy użyć standardowego.

W pierwszym przypadku po prostu je napisz, porównując pierwsze elementy:

Kod: Zaznacz cały

void my_sort( std::vector< std::pair< double, double > >& wektor )
{
    /* ... */

    if( wektor[i].first < wektor[j].first ) // jeśli pierwsza liczba z i-tej pary jest mniejsza od pierwszej liczby z j-tej pary

    /* ... */
}
W drugim przypadku musisz stworzyć funkcję lub obiekt funkcyjny do porównywania par:

Kod: Zaznacz cały

bool my_comp( std::pair< double, double > A, std::pair< double, double > B )
{
    return A.first < B.first;
}
a następnie przy jej użyciu posortować wektor:

Kod: Zaznacz cały

std::sort( wektor.begin(), wektor.end(), my_comp );
Persja
Użytkownik
Użytkownik
Posty: 3
Rejestracja: 18 lis 2013, o 17:52
Płeć: Kobieta
Lokalizacja: Warszawa

[C++] Tworzenie i sortowanie vectora

Post autor: Persja »

Dziękuję !
Awatar użytkownika
Zordon
Użytkownik
Użytkownik
Posty: 4977
Rejestracja: 12 lut 2008, o 21:42
Płeć: Mężczyzna
Lokalizacja: Kraków
Podziękował: 75 razy
Pomógł: 910 razy

[C++] Tworzenie i sortowanie vectora

Post autor: Zordon »

możesz też wywołać

Kod: Zaznacz cały

sort( wektor.begin(), wektor.end())
i to posortuje pary leksykograficznie.
ODPOWIEDZ