24

aMap[key]通过 C++和在 C++中获取值有什么区别aMap.at(key)

4

2 回答 2

39

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

.at()使用over的另一个优点[]是它可以在 a 上操作const std::map,而[]不会。

于 2012-05-30T17:41:30.057 回答
25

在 C++11map::at中存在(谁知道?)。

如果键不存在则抛出异常,如果元素不存在则find返回,如果相应键不存在值,则值初始化一个新值。aMap.end()operator[]

于 2012-05-30T17:40:19.050 回答