Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Sortowanie wektora struktur

Ostatnio zmodyfikowano 2019-01-10 13:40
Autor Wiadomość
Anim
Temat założony przez niniejszego użytkownika
Sortowanie wektora struktur
» 2019-01-10 12:56:58
Chciałbym posortować strukturę w taki sposób, że najpierw sortuje po pierwszej wartości, a następnie sortuje po drugiej wartości, ale tylko w zakresie wartości pierwszej, czyli jak mam powiedzmy pary:

(1,2);
(5,7);
(4,3);
(1,1);
(1,2);
(4,2);
(5,8);

to po pierwszym sortowaniu chciałbym mieć (sortuję po pierwszej wartości):
5,7
5,8
4,3
4,2
1,2
1,1
1,2

a po drugim sortowaniu:

5,8
5,7
4,3
4,2
1,2
1,2
1,1

Mam taki kod, jak poniżej. Srtowanie pierwszego przypadku mam, ale nie umiem zrobić drugiego sortowania. Chyba, że można to zrobić w jednej lambdzie...:



C/C++
#include <iostream>
#include <vector>
#include <algorithm>
#include <random>

using namespace std;

struct A
{
    A( int a, int b )
        : k( a )
         , l( b )
    { }
    int k;
    int l;
};


int main()
{
    std::random_device rd;
    std::uniform_int_distribution < int > dist( 0, 10 );
    std::mt19937 engine( rd() );
   
    int i, j;
   
    vector < A > wektor;
   
    for( int ww = 0; ww < 50; ++ww )
    {
        i = static_cast < int >( dist( engine ) );
        j = static_cast < int >( dist( engine ) );
       
        wektor.push_back( A( i, j ) );
    }
   
    for( auto const & value: wektor )
    {
        std::cout << value.k << " " << value.l << std::endl;
    }
    std::cout << std::endl;
   
    std::sort( wektor.begin(), wektor.end(),[]( const A & a, const A & b )->bool { return a.k > b.k; } );
    //std::sort(wektor.begin(), wektor.end(), [](const A &a, const A &b) -> bool{} );  <----- Tutaj nie umiem zdefiniować lambdy
    for( auto const & value: wektor )
    {
        std::cout << value.k << " " << value.l << std::endl;
    }
    return 0;
}
P-173485
pekfos
» 2019-01-10 13:06:19
Wystarczy jedno sortowanie.
» Kurs C++ » Poziom 5Wprowadzenie do standardowych algorytmów lekcja, "Przykład - sortowanie z nietypowym kryterium".
P-173488
Anim
Temat założony przez niniejszego użytkownika
» 2019-01-10 13:40:45
Dokładnie tego potrzebowałem :) Dziękuję.
P-173492
« 1 »
  Strona 1 z 1