2016-04-26 9 views
0

は私が与えられたアウターマップキーの内側のマップのセットにして値を挿入しようとしているマップを使用したマップ:イテレータを使用して内部マップをクリアするにはどうすればよいですか?

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; 

次のような構造を持っている別のマップ内のSTLのマップを持っています。私は挿入を行う前に、私は与えられた外側のマップキーの内側のマップの現在のキーを確認したいと思います。

  1. 現在の内部キーが挿入しようとしている値よりも大きい場合は、内部マップ全体を消去し、この新しい値を新しい内部マップキーとして追加します。
  2. 現在の内部キーが の挿入になる値と等しい場合、私は内側のマップのセットにエントリを追加します。
  3. 現在の内部キーが入力値より小さい場合は、入力値を破棄します。

私は2番目と3番目の条件を実装することができました。私は最初の条件についていくつかの助けが必要です。すなわち、外部マップの特定のキーに対応する内部マップ全体をクリアする。

ありがとうございます。

+0

「内部キー」と言えば、どのマップについて話していますか? – wally

+0

混乱して申し訳ありません。私は内側の地図を意味しました。 –

答えて

1

これは、単一のinnerMapからすべての要素を削除します(または、存在しない場合は空のinnerMapを作成します)。

myMainMap[outerKey].clear(); 
+0

これはうまくいった! –

+0

@NithinChandy:それはうまくいった。これで問題が解決した場合は、答えの左側にあるチェックマークをクリックして、合格とマークしてください。 –

+0

完了。ありがとうジョン! –

2

clear()は、お客様の要件に適合している必要があります。

関連する問題