[C++] Sortowanie struktury danych
Ostatnio zmodyfikowano 2015-01-03 18:41
Monika90 |
» 2014-12-29 22:59:50 Zamiast lambdy użyj zwykłej nazwanej funkcji, powiedzmy bool sortuj_punkty( const WG & wg1, const WG & wg2 ) { return wg1.punktyWG < wg2.punktyWG; }
int main() { std::sort( wyniki.begin(), wyniki.end(), sortuj_punkty ); }
|
|
Vanilka Temat założony przez niniejszego użytkownika |
» 2014-12-30 00:20:22 aha bo ja probowalam troche kombinowac w ta strone.. ale cos nie dziala... #include <iostream> #include <cstdlib> #include <ctime> #include <string> #include <vector> #include <fstream> #include <sstream>
using namespace std; struct WG { string nazwaGracza; int punktyWG; int poziomWG; };
int main() { cout << "Hello world!" << endl; vector < WG > tablicaWynikow; ifstream flux; flux.open( "pliczek.txt", ios::in ); int i = 1; while( !flux.eof() & i <= 10 ) { tablicaWynikow.push_back( WG() ); flux >> tablicaWynikow[ i - 1 ].nazwaGracza >> tablicaWynikow[ i - 1 ].punktyWG >> tablicaWynikow[ i - 1 ].poziomWG; if(( i == 1 ) &&( flux.eof() ) ) { cout << "nikt jeszcze nie wygral, badz pierwszy" << endl; } else { cout << i << ". " << tablicaWynikow[ i - 1 ].nazwaGracza << " " << tablicaWynikow[ i - 1 ].punktyWG << " " << tablicaWynikow[ i - 1 ].poziomWG << endl; i++; } } for(; i <= 10; i++ ) { cout << i << ". " << endl; } cout << "lecimy dalej " << endl; vector < WG >::iterator it_WG = tablicaWynikow.begin(); vector < WG >::iterator it_WG2 = it_WG + 1; cout << "tablica wynikow size " << tablicaWynikow.size() << endl; for( int a = 1; a < 5; a++ ) { for( it_WG = tablicaWynikow.begin(); it_WG != tablicaWynikow.end() - 1; it_WG++ ) { if( it_WG->poziomWG > it_WG2->poziomWG ) { WG bufor; bufor.nazwaGracza = it_WG2->nazwaGracza; bufor.poziomWG = it_WG2->poziomWG; bufor.punktyWG = it_WG2->punktyWG; * it_WG2 = * it_WG; it_WG->nazwaGracza = bufor.nazwaGracza; it_WG->poziomWG = bufor.poziomWG; it_WG->punktyWG = bufor.punktyWG; } it_WG2++; } } for( int i = 1; i < 10; i++ ) { cout << i << ". " << tablicaWynikow[ i - 1 ].nazwaGracza << " " << tablicaWynikow[ i - 1 ].punktyWG << " " << tablicaWynikow[ i - 1 ].poziomWG << endl; } flux.close(); }
|
|
DejaVu |
» 2015-01-03 18:41:59 Rozwiązanie problemu zostało podane więc chyba temat można zamknąć. Otwórz temat, jeżeli uważasz, że jeszcze czegoś nie wiesz. |
|
1 « 2 » |