Sortowanie tablicy dwuwymiarowej
Ostatnio zmodyfikowano 2017-06-23 22:57
Hacper Temat założony przez niniejszego użytkownika |
Sortowanie tablicy dwuwymiarowej » 2017-06-23 17:56:54 Witam, mam za zadanie posortować tablice dwuwymiarową w taki sposób, że pierwszy element jest ważniejszy, a jeśli są takie same gdzieś to wtedy decyduje drugi element. Tablica int'ów. Podam przykład:
Tablica: 13 1 3 2 13 2
Po posortowaniu powinno być: 3 2 13 1 13 2
Do normalnego sortowania używałem zwykle sort() z biblioteki algorithm. Teraz nie dzieła. |
|
mokrowski |
» 2017-06-23 22:57:53 #include <iostream>
int main() { int table[][ 2 ] = { { 13, 1 }, { 3, 2 }, { 13, 2 } }; std::qsort( table, sizeof( table ) / sizeof( * table ), sizeof( * table ), []( const void * tab1, const void * tab2 ) { const int * t1 = static_cast < const int *>( tab1 ); const int * t2 = static_cast < const int *>( tab2 ); return( t1[ 0 ] < t2[ 0 ] ) ? - 1 :(( t2[ 0 ] < t1[ 0 ] ) ? 1 :( t1[ 1 ] < t2[ 1 ] ? - 1 :(( t2[ 1 ] < t1[ 1 ] ? 1 : 0 ) ) ) ); } ); for( const auto & tab: table ) { for( const auto & val: tab ) { std::cout << val << " "; } std::putchar( '\n' ); } }
https://wandbox.org/permlink/qVvAfncfEC9MYZ11 |
|
« 1 » |