Poniżej przedstawiam mój program w którym z pomocą internetu udało mi się stworzyć (tzn tego na czerwono nie rozumiem, przyznaję bez bicia). Chcę teraz tę listę posortować malejąco po wsk, ale nie wiem jak to zrobić. Siedzę już nad tym tyle czasu że już mi się miesza. Byłbym bardzo wdzięczny za pomoc.
#include "stdafx.h"
#include <list>
#include <iostream>
using namespace std;
class Element
{
public:
float wsp; //wsp -> współczynnik ilorazu ceny do wagi
int nr;
Element(int nr, float wsp)
{
this->nr=nr;
this->wsp=wsp;
}
};
float POLICZ_WSP(float &cena, float &waga)
{
return cena/waga;
}
int main()
{
int licznik=0, plecak=0;
char flag;
float cena=0, waga=0, wsp=0;
list <Element> Lista;
cout<<"Podaj pojemnosc (wage) plecaka."<<endl;
cin>>plecak;
for (int i=0; i<80; i++) // rysowanie linii na całą dł.
putchar('*'); // okienka dla przejrzystości
putchar('\n'); // programu
do
{
licznik++;
cout<<"Element nr: "<<licznik<<endl;
cout<<"Podaj wartosc (cene) elementu."<<endl;
cin>>cena;
while (cena<=0) //Weryfikacja podanej wartosci
{
cout<<"Wpisana wartosc jest niepoprawna, sproboj ponownie."<<endl;
cin>>cena;
}
cout<<"Podaj pojemnosc (wage) elementu."<<endl;
cin>>waga;
while (waga<=0) //Weryfikacja podanej wartosci
{
cout<<"Wpisana wartosc jest niepoprawna, sproboj ponownie."<<endl;
cin>>waga;
}
Element *f;
Lista.push_back(*(f=new Element(licznik, wsp)));
cout<<"Aby dodac kolejny element wcisnij \"t\""<<endl;
cin>>flag;
}
while(flag=='t' || flag=='T');
system("pause");
return 0;
}
Element f;
Lista.push_back((f=new Element(licznik, wsp)));
tego fragmentu nie rozumiem.