V& operator [](K key) { typename avl_tree<node>::node *n = tree.find(node(key, V(0))); if (!n) n = tree.insert(node(key, V(0))); return n->item.value; } };