在地图中映射:如何使用迭代器清除内部地图?

时间:2016-04-26 01:22:41

标签: c++ stl

我在另一张地图中有一个STL地图,其中包含以下结构

typedef set<int> nexthops;
typedef std::map<int, nexthops> innerMap;
typedef std::map<int, innerMap> mainMap;


typedef std::set<int>::const_iterator nexthop_iterator;
typedef map<int, nexthops>::const_iterator innermap_iterator;
typedef map<int, innerMap>::const_iterator outermap_iterator;

我正在尝试将值插入到给定外部地图键的内部地图集中。在我执行插入之前,我想检查给定外部映射键的内部映射的当前键。

  1. 如果当前内部键大于要插入的值,我想清除整个内部地图,只需将此新值添加为新的内部地图键。
  2. 如果当前内部键等于要进入的值 插入,我将把条目添加到内部地图的集合中。
  3. 如果当前内部键小于传入值,则只丢弃传入值。
  4. 我能够实现第二和第三个条件,我需要一些第一个条件的帮助。即清除对应于外部地图中的特定键的整个内部地图。

    谢谢。

2 个答案:

答案 0 :(得分:2)

clear()应符合您的要求。

答案 1 :(得分:1)

这将删除单个innerMap中的所有元素(如果不存在,则创建一个空的innerMap)。

myMainMap[outerKey].clear();