STL之map实现(五)

接下来,实现插入函数

void SortedMap<K,E>::insert(const pair<const K,E>& thePair)

{

    //找到你插入的位置

     pairNode<K,E>* p =firstNode ,*tp=NULL;

   //不能存在重复的key,如果出现重复的key后面的会覆盖掉前面的

    while(p!=NULL&& p->element.first<thePair.first){

       tp=p;

       p=p->next;

      }


     //判断是否存在

     if(p!=NULL&&p->element.first==thePair.first)

    {

        //存在相同的键值,让后面的覆盖前面的

         p->element.second=thePair.second;

         return ; 

     }


      //不存在----创建新的一个结点插进去   (tp是插入位置上一个,p和tp相邻,即在p和tp之间插入)

      //newNode=thePair ,next=p;

      pairNode<K,E>*   newNode=new pairNode<K,E>(thePair,p);

       if(tp==NULL)

       {

            //意味着是第一个结点

            firstNode=newNode;

        }

     else

      {

        tp->next=newNode;

       }

        dSize++;

}

好了,插入功能就实现,就是这么简单,不用着急,其他功能和源码明天附上。





  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值