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

klasy i proster sortowanie

Ostatnio zmodyfikowano 2011-05-23 16:01
Autor Wiadomość
Irokezkez
Temat założony przez niniejszego użytkownika
klasy i proster sortowanie
» 2011-05-22 23:02:32
Mam mały problem, skorzystałem z prostego sorotowania:
C/C++
#include <cstdlib>
#include <iostream>
#include <algorithm>
#include <functional>
#include<conio.h>
#include <string.h>

using namespace std;





int main( int argc, char * argv[] )
{
    cout << "Ile miejsc zarezerwowac w bazie danych ?" << endl;
    int ile;
    cin >> ile;
    int tablica[ ile ];
    cout << "Podaj " << ile << " liczb" << endl;
   
    for( int i = 0; i < ile; i++ )
    {
        cin >> tablica[ i ];
    }
   
   
    sort( tablica, tablica + ile );
   
    cout << "Tablica  posortowana malejaco: \n";
    for( int i = 0; i < ile; i++ )
    {
        cout << tablica[ i ] << endl;
    }
   
   
    system( "PAUSE" );
    return EXIT_SUCCESS;
}
Wszystko ładnie działa, jednak problem pojawia się gdy dodaje klasy.
C/C++
#include <cstdlib>
#include <iostream>
#include <algorithm>
#include <functional>
#include<conio.h>
#include <string.h>
using namespace std;

class uczen
{
public:
    int ocena;
    string nazwisko;
   
};



int main( int argc, char * argv[] )
{
    cout << "Ile miejsc zarezerwowac w bazie danych ?" << endl;
    int ile;
    cin >> ile;
    uczen tablica[ ile ];
    cout << "Podaj " << ile << " liczb" << endl;
   
    for( int i = 0; i < ile; i++ )
    {
        cin >> tablica[ i ].ocena;
    }
   
   
    sort( tablica, tablica + ile );
   
    cout << "Tablica a posortowana malejaco: \n";
    for( int i = 0; i < ile; i++ )
    {
        cout << tablica[ i ].ocena << endl;
    }
   
   
    system( "PAUSE" );
    return EXIT_SUCCESS;
}



Próbowałem w miejscu
C/C++
sort( tablica, tablica + ile ); ////zmienic na
sort( tablica.wynik + ile ); /// jednak błędy się pojawiają
P-33353
DejaVu
» 2011-05-22 23:05:45
Musisz albo przeciążyć operator< oraz operator!= dla klasy po której chcesz sortować, albo napisać strukturę sortującą i podać ją jako 3 argument funkcji std::sort.
P-33354
ison
» 2011-05-23 16:01:40
C/C++
class uczen
{
public:
    int ocena;
    string nazwisko;
   
};

bool mniejsze( uczen a, uczen b )
{
    return a.ocena < b.ocena;
}

...
sort( tablica, tablica + ilosc, mniejsze );
P-33369
« 1 »
  Strona 1 z 1