当前位置: 动力学知识库 > 问答 > 编程问答 >

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

问题描述:

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

网友答案:

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.

网友答案:

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.

分享给朋友:
您可能感兴趣的文章:
随机阅读: