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

[C++] Sortowanie struktury danych

Ostatnio zmodyfikowano 2015-01-03 18:41
Autor Wiadomość
Monika90
» 2014-12-29 22:59:50
Zamiast lambdy użyj zwykłej nazwanej funkcji, powiedzmy
C/C++
bool sortuj_punkty( const WG & wg1, const WG & wg2 )
{
    return wg1.punktyWG < wg2.punktyWG;
}

int main()
{
    std::sort( wyniki.begin(), wyniki.end(), sortuj_punkty );
}
P-123615
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...

C/C++
#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();
   
   
}


P-123620
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.
P-123973
1 « 2 »
Poprzednia strona Strona 2 z 2