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

Najlepsze wyniki - return value 3221226356

Ostatnio zmodyfikowano 2019-06-07 20:43
Autor Wiadomość
K1cek
Temat założony przez niniejszego użytkownika
» 2019-06-07 17:52:33
I tak coś nie gra z tym moim sortowaniem, także gratulacje niezasłużone, przy danych wejściowych w txt:

gracz1
123
gracz2
322
gracz3
922
gracz4
394
gracz5
1232
gracz5
1232
na wyjściu mam:
Imie - gracz5  WYNIK 1232
Imie - gracz3  WYNIK 922
Imie - gracz4  WYNIK 394
Imie - gracz2  WYNIK 322
Imie - gracz1  WYNIK 123
Imie - gracz5  WYNIK 1232

Rozumiem, że metoda sort() jest wydajniejsza i proszę mi wierzyć, gdybym wiedział jak to bym ją zastosował, narazie mogę jedynie o niej poczytać.

Dzięki za wyczerpującą wypowiedź, mój wyżej opisany błąd jest pewnie skutkiem moich wcześniejszych błędów, zaraz postaram się to doprowadzić do ładu, dzięki !
P-174773
pekfos
» 2019-06-07 18:01:08
C/C++
for( int count1 = 1; count1 < vect.size() - 1; count1++ )
Usuń te -1.

Rozumiem, że metoda sort() jest wydajniejsza i proszę mi wierzyć, gdybym wiedział jak to bym ją zastosował
Przykład jest w lekcji, którą podałem.
C/C++
std::sort( wektor.begin(), wektor.end(), predykat );
Wystarczy napisać funkcję bool predykat(const DANE& l, const DANE& r), która określa kryterium sortowania.
P-174774
K1cek
Temat założony przez niniejszego użytkownika
» 2019-06-07 18:05:40
Usunąłem -1 i faktycznie działa. Zabieram się za czytanie.
P-174775
Jacob99
» 2019-06-07 18:11:10
std::sort() jest bardzo prosta w użyciu:
C/C++
//#include <algorithm>
//...
std::vector < DANE > data;
//... dodawanie danych do vectora
std::sort( data.begin(), data.end(),[]( DATA first, DATA second ) { return first.wynik > second.wynik; } );
//Tutaj masz już posortowane dane

Opis std::sort masz tutaj: https://en.cppreference.com/w​/cpp/algorithm/sort
P-174776
K1cek
Temat założony przez niniejszego użytkownika
» 2019-06-07 19:07:55
Dzięki Jacob99, zastosowałem się jednak - bo jak na pierwszy raz wydała mi się bardziej przejrzysta - do zalecenia pekfosa teraz mam coś takiego, zrezygnowałem z tej funkcji sortującej - sortuje metodą sort:

C/C++
#include <iostream>
#include <fstream>
#include <conio.h>
#include <string>
#include <sstream>
#include <iterator>
#include <vector>
#include <algorithm>
#include <limits>


using namespace std;

struct DANE
{
    string imiona;
    int wyniki;
};

bool predykat( DANE l, DANE r )
{
    return l.wyniki > r.wyniki;
}

void odczyt()
{
    vector < DANE > mojWektor;
    DANE Wyniki;
   
    fstream plik;
   
    plik.open( "dane.txt", ios::in );
   
    string linijka;
   
    if( plik.good() )
    {
        while( true )
        {
            getline( plik, Wyniki.imiona );
            plik >> Wyniki.wyniki;
            if( plik.fail() )
            {
                break;
            }
            plik.ignore( numeric_limits < streamsize >::max(), '\n' );
            mojWektor.push_back( Wyniki );
           
        }
       
        sort( mojWektor.begin(), mojWektor.end(), predykat );
        for( int i = 0; i < mojWektor.size(); i++ )
        {
            cout << "Imie - " << mojWektor[ i ].imiona << "  WYNIK " << mojWektor[ i ].wyniki << endl;
        }
        plik.close();
    }
    else
    {
       
        cout << "Error! Nie udalo otworzyc sie pliku!" << endl;
       
    }
}
int main()
{
   
    odczyt();
   
    return 0;
}

P-174777
K1cek
Temat założony przez niniejszego użytkownika
» 2019-06-07 20:43:56
Wszystko działa, dzięki za pomoc, spróbuje jeszcze według Twoich zaleceń pekfos udoskonalić ten kod, temat zamykam.
P-174778
1 « 2 »
Poprzednia strona Strona 2 z 2