#include <iostream>
#include<vector>
#include<algorithm>
#include<stdexcept>
using namespace std;
template<typename Tip>
class RedSaPrioritetom{
vector<Tip> elementi;
public:
void Dodaj(const Tip &element);
const Tip &DajNajveci() const;
void UkloniNajveci();
int DajVelicinu() const {return elementi.size();}
bool DaLiJePrazan() const{return elementi.size() == 0;}
};
template<typename Tip>
void RedSaPrioritetom<Tip>::Dodaj (const Tip &element){
elementi.push_back(element);
}
template<typename Tip>
const Tip &RedSaPrioritetom<Tip>::DajNajveci() const{
if(DaLiJePrazan()) throw logic_error("Prazan red");
return *max_element(elementi.begin(), elementi.end());
}
template<typename Tip>
void RedSaPrioritetom<Tip>::UkloniNajveci(){
if(!DaLiJePrazan()) elementi.erase(max_element(elementi.begin(), elementi.end()));
}
int main() {
RedSaPrioritetom<int> r;
r.Dodaj(10);
r.Dodaj(5);
r.Dodaj(30);
r.Dodaj(20);
r.Dodaj(30);
cout << "Velicina: " << r.DajVelicinu() << endl;
cout << "Najveci: " << r.DajNajveci() << endl;
r.UkloniNajveci();
cout << "Najveci nakon uklanjanja: " << r.DajNajveci() << endl;
r.UkloniNajveci();
cout << "Najveci nakon drugog uklanjanja: " << r.DajNajveci() << endl;
cout << "Svi elementi po prioritetu: ";
while(!r.DaLiJePrazan()) {
cout << r.DajNajveci() << " ";
r.UkloniNajveci();
}
cout << endl;
try {
r.DajNajveci();
} catch(logic_error &e) {
cout << "Izuzetak: " << e.what() << endl;
}
return 0;
}
To embed this project on your website, copy the following code and paste it into your website's HTML: