template <typename Key, typename Element> class Item { // a (key, element) pair private: Key _key; // key value Element _elem; // element public: Item(const Key& k = Key(), const Element& e = Element()) : _key(k), _elem(e) { } // constructor const Key& key() const // gets the key (read only) { return _key; } Element& element() // gets the element { return _elem; } const Element& element() const // gets the element (read only) { return _elem; } void setKey(const Key& k) // sets the key value { _key = k; } void setElement(const Element& e) // sets the element { _elem = e; } };