地图 [] 和 map.at 在C++中的区别

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

本文关键字:C++ 区别 at map 地图      更新时间:2023-10-16

通过C++中的aMap[key]aMap.at(key)获得值有什么区别?

如果您使用索引运算符访问当前不是映射一部分的键[],则它会自动为您添加键。这是一个巨大的警告,并考虑到这一点。出于这个原因,我更喜欢使用索引运算符[]进行设置,并使用.find()/.at()进行查找。

使用.at()相对于[]的另一个优点是它可以在const std::map上运行,而[]则不会。

在 C++11 中,map::at存在(谁知道呢?

如果键不存在,它会引发异常,如果元素不存在,则find返回aMap.end(),如果不存在值,则operator[] value 初始化相应键的新值。