0
#include<iostream>
using namespace std;
class Lek{
private:
int sifra;
string ime;
string proizvoditel;
int cena;
int kolicina;
public:
Lek(){
}
void postavuvanje(int s, string i, string p, int c, int k){
sifra = s;
ime = i;
proizvoditel = p;
cena = c;
kolicina = k;
}
int vratiSifra(){
return sifra;
}
string vratiIme(){
return ime;
}
string vratiProizvoditel(){
return proizvoditel;
}
int vratiCena(){
return cena;
}
int vratiKolicina(){
return kolicina;
}
void pecati(){
cout << sifra << " " << ime << " " << proizvoditel << " " << cena << " " << kolicina << endl;
}
};
int main(){
Lek Apteka[100];
int n;
cout << "Vnesi go brojot na lekovi" << endl;
cin >> n;
int sifra;
string ime;
string proizvoditel;
int cena;
int kolicina;
// here we are inputting the values for the array of objects.
for(int i = 0; i < n; i++){
cin >> sifra;
cin >> ime;
cin >> proizvoditel;
cin >> cena;
cin >> kolicina;
Apteka[i].postavuvanje(sifra, ime, proizvoditel, cena, kolicina);
}
// this is part to find the name of the element with the lowest price.
int najmala_cena = Apteka[0].vratiCena();
int index = 0;
for(int i = 1; i < n; i++){
if(Apteka[i].vratiCena() < najmala_cena){
najmala_cena = Apteka[i].vratiCena();
index = i;
}
}
cout << Apteka[index].vratiIme() << endl;
return 0;
}
我已經設法解決了以最低價格查找元素的問題。但是,我無法按價格(cena)對元素進行排序。另外,我必須找到所有具有「proizvoditel」「X」的元素,並找出它有多少個不同的名稱(ime)。對類的元素進行排序並在類中查找不同的元素
按價格排列元素(cena)我認爲這是不言自明的。但是由於我的英語對於第二個問題並不好,這裏基本上就是一個簡單的例子。
比方說,我們的用戶有下列輸入:
1
PillX
HospitalY
125
2
2
PillY
HospitalY
225
4
3
PillZ
HospitalY
590
1
4
PillX
HospitalY
125
8
所以,基本上,這些都是類的4名對象的屬性和我們有着同樣的「proizvoditel」用於所有的藥丸,被稱爲「 HospitalY「,我們必須找出它有多少個不同的藥片,所以它有3個,因爲PillX已經存在並且不會被第二次計算。
快速的問題,是有使用排序或stable_sort的有什麼區別? – user3402189
@ user3402189,是的。在穩定的排序中,相同的元素不會移動。例子設想一個列表'[... A,B,...]',A和B有不同的kolicena。如果你使用'stable_sort',那麼A總是會在B之前。如果你使用'sort',那麼訂單可能不會被保留 – yizzlez
因此,基本上使用sort()會對價格進行排序並用當前元素更改值將保持不變)?如果我們使用stable_sort,除了整個元素的位置將被改變,其他東西的值和價格將是相同的? – user3402189