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; } };