2012-05-30 9 views

答えて

14

C++で11 map::atが存在します(誰が知っていましたか?)。

キーが存在しない場合は、例外をスローし、findaMap.end()戻る要素が存在しない場合、およびNO値が存在しない場合operator[]対応するキーの新しい値値初期化。あなたは現在のマップの一部ではないインデックス演算子[]を、使用してキーにアクセスする場合

+2

[もちろんそうです](http://en.cppreference.com/w/cpp/container/map/at)... –

+1

@KerrekSB(C++ 11以降)はそれを知らなかった。 –

28

はそれはは自動的のキーを追加します。これは大きな注意点です。これを考慮してください。このため、私は索引付け演算子[]を設定に使用し、参照のために.find()/.at()を使用することをお薦めします。

[].at()を使用してのもう一つの利点は、[]はないだろう一方で、それは、const std::map上で動作させることができるという事実です。

関連する問題