Difference between map[] and map.at in C++?

前端 未结 2 1114
日久生厌
日久生厌 2020-12-31 00:21

What is the difference in getting a value through aMap[key] and aMap.at(key) in C++?

相关标签:
2条回答
  • 2020-12-31 01:01

    If you access a key using the indexing operator [] that is not currently a part of a map, then it automatically adds a key for you. This is a huge caveat, and take this into consideration. For this reason, I prefer using the indexing operator [] for setting, and .find() / .at() for lookup.

    Another advantage of using .at() over [] is the fact that it can operate on a const std::map, whereas [] won't.

    0 讨论(0)
  • 2020-12-31 01:15

    In C++11 map::at exists (who knew?).

    It throws an exception if the key doesn't exist, find returns aMap.end() if the element doesn't exist, and operator[] value-initializes a new value for the corresponding key if no value exists there.

    0 讨论(0)
提交回复
热议问题