zoukankan      html  css  js  c++  java
  • 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);
    }

  • 相关阅读:
    Cayley's Tree Formula & Prufer's Method
    POJ 2262:Goldbach's Conjecture
    The Sieve of Eratosthenes (素数筛选法)
    POJ 2244:Eeny Meeny Moo(稍加变形的约瑟夫问题)
    POJ 1595:Prime Cuts
    iframe标签的使用
    js笔记
    Asp.Net知识点
    Reapte控件的使用
    浮躁十年
  • 原文地址:https://www.cnblogs.com/Hisin/p/3152935.html
Copyright © 2011-2022 走看看