Figure 1: _Tree::insert

   _Pairib insert(const value_type& _V)
      {_Nodeptr _X = _Root();
      _Nodeptr _Y = _Head;
      bool _Addleft = true;
      while (!_Isnil(_X))
         {_Y = _X;
         _Addleft = comp(_Kfn()(_V), _Key(_X));
         _X = _Addleft ? _Left(_X) : _Right(_X); }
      if (_Multi)
         return (_Pairib(_Insert(_Addleft, _Y, _V), true));
      else
         {iterator _P = iterator(_Y);
         if (!_Addleft)
            ;
         else if (_P == begin())
            return (_Pairib(_Insert(true, _Y, _V), true));
         else
            --_P;
         if (comp(_Key(_P._Mynode()), _Kfn()(_V)))
            return (_Pairib(_Insert(_Addleft, _Y, _V), true));
         else
            return (_Pairib(_P, false)); }}