#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;
}

Embed on website

To embed this project on your website, copy the following code and paste it into your website's HTML: