aMap[key]
通过 C++和在 C++中获取值有什么区别aMap.at(key)
?
问问题
10854 次
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 回答