std::map的插入操作与赋值操作

来源:互联网 发布:华为s2700绑定mac地址 编辑:程序博客网 时间:2024/06/03 22:05

前些天,哥们又犯晕了:  自己定义了一个容器: typedef std::map<string, string> MapKeyValue; typedef std::map<string, MapKeyValue> MapSection;  想用这个MapSection当容器来临时存储.ini 文件的section, key, value.  对于一个容器常用不过的方法就是添加数据了. 于是乎哥们就想到insert, 过来一个就insert一个,无非就是再判断一下: 是否当前已经有了此section,key等条件.于是乎写了:

bool MyIniFileTool:: AddSectionKeyValue(string& section, string& key, string& value)

{

   .................

    if(section存在/相同)

    {

  if(key不存在/不相同)  // 

        {

mMyMapSections.insert(......);

        }

       if(value不存在/不相同)

        {

              mMyMapSections.insert(.......);

        }

    }

    else  // section 不存在,那么就插入

    {

          mMyMapSections.insert(........);

    }

   ...................

   return true;

}

看看这么长的代码,容易晕吧,后来发现只需要一句话就行了:

bool MyIniFileTool:: AddSectionKeyValue(string& section, string& key, string& value)

{

mMyMapSections[section][key] = value;

}


那些判断语句都是自己瞎操心. 咳, 共勉了,

原创粉丝点击