/* * dictionary.h * * Created on: 8.01.2016 г. * Author: trifon */ #ifndef DICTIONARY_H_ #define DICTIONARY_H_ #include using namespace std; #include "linked_list.cpp" template class Dictionary { public: // търсене virtual V* lookup(K const&) = 0; // вмъкване virtual bool add(K const&, V const&) = 0; // изтриване virtual bool remove(K const&) = 0; // списък от ключове virtual LinkedList keys() = 0; // списък от стойности virtual LinkedList values() = 0; virtual ~Dictionary() {} }; template class KeyValuePair : public pair { public: KeyValuePair(K const& key = K(), V const& value = V()) : pair(key, value) {} K& key() { return pair::first; } V& value() { return pair::second; } K const& key() const { return pair::first; } V const& value() const { return pair::second; } bool operator==(KeyValuePair const& kvp) const { return key() == kvp.key(); } bool operator!=(KeyValuePair const& kvp) const { return !(*this == kvp); } }; #endif /* DICTIONARY_H_ */