Ponizej czesc kodu. W klasie Tabela jest lista typu zadanie i musze ja posortowac wzgledem okreslonego pola, wiec dodalem biblioteke algorithm gdzie znajduje sie funkcja sort() i probuje ja wywolac:
kolejnosc_topologiczna.sort(sortujP_time);
error: no matching function for call to 'std::list<zadanie, std::allocator<zadanie> >::sort(<unresolved overloaded="overloaded" function="function" type="type">)'|
Jak zrobic to poprawnie??
#define KOLUMNY 2
#include<iostream>
#include<cstdlib>
#include<fstream>
#include<list>
#include <string>
#include<algorithm>
using namespace std;
//**********************************************KLASA ZADANIE
class zadanie
{ public:
int nr_zad;
int lp;
int maszyna;
int p_time;
int poprzed_techn;
int nast_techn;
int nast_kolej;
int poprzed_kolej;
int liczba_poprzednikow;
int R;
int Q;
bool sprawdzony;
zadanie();
};
zadanie::zadanie()
{
nr_zad=0;
lp=0;
maszyna=0;
p_time=0;
poprzed_techn=0;
nast_techn=0;
nast_kolej=0;
poprzed_kolej=0;
liczba_poprzednikow=0;
R=0;
Q=0;
sprawdzony=0;
}
//**********************************************************
//**********************************************KLASA TABELA
class Tabela
{
public:
int** tablica; //pierwsza kolumna to maszyna druga to p time
zadanie* zadania; //tablica zadan (tyle ile lp)
int ile_maszyn;
int ile_zadan;
int ile_wierszy;
string nazwa;
fstream plik;
list<zadanie> kolejnosc_topologiczna; // do przechowywania kolejnioscu topolog.
void WczytajDane();
void WypiszTabele();
void LiczTopolog();
void LiczRQ(); //wyznacza kolejnosc topologiczna
bool sortujP_time(const zadanie& z1, const zadanie& z2);
Tabela();
};
bool Tabela::sortujP_time(const zadanie& z1, const zadanie& z2){
return z1.p_time>z2.p_time;
}
void Tabela::WypiszTabele()
{
for (int i=0;i<ile_wierszy;i++)
{
cout<<endl;
if (zadania[i].lp>9)
cout<<zadania[i].lp<<" ";
else
cout<<zadania[i].lp<<" ";
for (int j=0;j<KOLUMNY;j++)
{
if (tablica[i][j]>9)
cout<<tablica[i][j]<<" ";
else
cout<<tablica[i][j]<<" ";
}
if (zadania[i].nast_techn>9)
cout<<zadania[i].nast_techn<<" ";
else
cout<<zadania[i].nast_techn<<" ";
if (zadania[i].poprzed_techn>9)
cout<<zadania[i].poprzed_techn<<" ";
else
cout<<zadania[i].poprzed_techn<<" ";
if (zadania[i].nast_kolej>9)
cout<<zadania[i].nast_kolej<<" ";
else
cout<<zadania[i].nast_kolej<<" ";
if (zadania[i].poprzed_kolej>9)
cout<<zadania[i].poprzed_kolej<<" ";
else
cout<<zadania[i].poprzed_kolej<<" ";
if (zadania[i].liczba_poprzednikow>9)
cout<<zadania[i].liczba_poprzednikow<<" ";
else
cout<<zadania[i].liczba_poprzednikow<<" ";
if (zadania[i].R>9)
cout<<zadania[i].R<<" ";
else
cout<<zadania[i].R<<" ";
if (zadania[i].R>9)
cout<<zadania[i].Q<<" ";
else
cout<<zadania[i].Q<<" ";
//cout<<endl;
//cout<<endl;
//cout<<endl;
//cout<<endl;
// for (int i=0;i<ile_wierszy;i++)
// cout<<zadania[i].nast_kolej<<endl;
}
cout<<endl;
cout<<endl;
for( list<zadanie>::iterator iter=kolejnosc_topologiczna.begin(); iter != kolejnosc_topologiczna.end(); ++iter )
cout<<iter->lp<<" ";
kolejnosc_topologiczna.sort(sortujP_time);
cout<<endl;
cout<<endl;
for( list<zadanie>::iterator iter=kolejnosc_topologiczna.begin(); iter != kolejnosc_topologiczna.end(); ++iter )
cout<<iter->lp<<" ";
}