• STL笔记之【map之移除元素】


    //---------------------------------------------------------
    // 移除map中满足条件的元素
    //---------------------------------------------------------
    // 1.创建map
    map<int, string> mapTest;
    mapTest.insert(map<int, string>::value_type(0, "0"));
    mapTest.insert(map<int, string>::value_type(1, "1"));
    mapTest.insert(map<int, string>::value_type(2, "2"));

    // 2.移除满足条件的元素
    map<int, string>::iterator iter = mapTest.begin();
    for (; iter != mapTest.end(); )
    {
     if (iter->second == "1")
     {
      mapTest.erase(iter++);
     }
     else
     {
      ++iter;
     }
    }

    // 3.总结
    map.erase(pos)是不返回pos的下一个迭代器的
    注意if中的mapTest.erase(iter++);
        而不是++iter
     
    //---------------------------------------------------------
    // 移除map中key为某一值的元素
    //---------------------------------------------------------
    mapTest.erase(keyValue);
    如果mapTest为multimap,则会删除key==keyValue的所有元素
    如果在multimap中只想移除第一个key==keyValue的元素
    则代码应当如此
    pos = mapTest.find(keyValue);
    if (pos != mapTest.end())
    {
     mapTest.erase(pos);
    }

  • 相关阅读:
    nodejs下载图片保存本地
    anaconda基本命令
    1.购买腾讯学生服务器遇到的坑
    git 命令
    JS深拷贝递归实现
    Object.prototype.toString()
    Spring核心知识点
    Spring核心知识点
    Spring核心知识点
    Spring基础知识点
  • 原文地址:https://www.cnblogs.com/Hisin/p/3152935.html
Copyright © 2020-2023  润新知