#include <iostream>
#include<vector>
#include<initializer_list>
#include <algorithm>
#include <string>
#include <stdexcept>

template <typename T>
class Mapa{
    std::vector<std::pair<std::string, T>> parovi;

    public:
    Mapa() {}
    Mapa (std::initializer_list<std::pair<std::string, T>> lista);
    int DajVelicinu() const {return parovi.size();};
    void DodajPar(const std::pair<std::string, T> &par);
    void IzbrisiElement(const std::string &kljuc);
    const T &NadjiElement(const std::string &kljuc) const;
    void IspisiMapu() const;
};
template <typename T>
Mapa<T>::Mapa(std::initializer_list<std::pair<std::string, T>> lista){
    for(auto p : lista) DodajPar(p);
}
template <typename T>
void Mapa<T>::DodajPar(const std::pair<std::string, T> &par){

    auto it = std::find_if(parovi.begin(), parovi.end(),
              [par](const std::pair<std::string, T> &a){return a.first==par.first;});
    if(it != parovi.end()) it->second = par.second;
    else {
        parovi.push_back(par);
        std::sort(parovi.begin(), parovi.end());
    }
    
}
template <typename T>
void Mapa<T>::IzbrisiElement(const std::string &kljuc){

    auto it = find_if(parovi.begin(), parovi.end(), 
                    [kljuc](const std::pair<std::string, T> &par){
                        return par.first == kljuc;
                    }
                     );
    if(it != parovi.end()) parovi.erase(it);
}


template <typename T>
const T &Mapa<T>::NadjiElement (const std::string &kljuc) const{

    auto it = find_if(parovi.begin(), parovi.end(), [kljuc] (const std::pair<std::string, T> &par){
                                        return kljuc == par.first;
        
    });

    if(it == parovi.end()) throw std::logic_error("Nije nadjen par");
    return it->second;
}

template <typename T>
void Mapa<T>::IspisiMapu() const{
    for (auto p : parovi) std::cout << p.first << "/" << p.second <<std::endl;
}




















int main() {
    std::cout << "Hello world!" << std::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: