template Map::Map() { m_root = 0; } template Map::~Map() { if (m_root != 0) delete m_root; } template bool Map::has(const K& key) { return (find(key, m_root) != 0); } template void Map::set(const K& key, const V& value) { item_t* i = find(key, m_root); if (i == 0) m_root = insert(key, value, m_root); else i->value = value; } template const V& Map::get(const K& key) { item_t* i = find(key); if (i == 0) return m_null; return i->value; } template V& Map::operator[] (const K& key) { item_t* i = find(key, m_root); if (i == 0) { m_root = insert(key, m_null, m_root); i = find(key, m_root); } return i->value; }