在C++中通过aMap[key]
和aMap.at(key)
获取值有什么区别?C++中map []和map.at之间的区别?
16
A
回答
14
在C++ 11 map::at
存在(谁知道?)。
如果该键不存在,它抛出一个异常,find
返回aMap.end()
如果元素不存在,operator[]
如果没有值存在有值初始化为相应键的新值。
28
如果您访问使用索引操作符[]
不是当前地图的一部分,一键则自动为您的关键。这是一个巨大的警告,并考虑到这一点。为此,我更喜欢使用索引运算符[]
进行设置,并且使用.find()
/.at()
进行查找。
使用.at()
而不是[]
的另一个优点是它可以在const std::map
上运行,而[]
不会。
相关问题
- 1. Fork/Join和Map/Reduce之间的区别
- 2. C中的/ +和+之间的区别?
- 3. C#中char和int之间的区别#
- 4. C#中Convert.ToString()和.ToString()之间的区别?
- 5. C#“var”和C++“auto”之间的区别
- 6. C和C++之间的区别
- 7. Java和C#和.NET之间的区别
- 8. `%in%`和`==`之间的区别
- 9. ==和case之间的区别?
- 10. 和之间的区别。在Objective-C
- 11. ASP.Net,C#.Net和VB.Net之间的区别?
- 12. VS DataBreakpoints:C和C++之间的区别
- 13. Objective C,n ++和++之间的区别n
- 14. c /#和#region之间的区别#
- 15. ASP和C#之间的语义区别?
- 16. Panel和UserControl之间的区别c#
- 17. cout和C++之间的区别
- 18. objective-c和java之间的区别
- 19. C++ Builder - Lib和Res之间的区别
- 20. Ruby和C之间的主要区别
- 21. C++ OOP和PHP OOP之间的区别
- 22. Objective-C - alloc和allocFromZone之间的区别?
- 23. Objective-C(null)和nil之间的区别
- 24. [abc]和(a | b | c)之间的区别
- 25. jQuery中$ .map和$ .grep之间有什么区别
- 26. Map和Map.Entry之间的区别<K,V>接口
- 27. std :: map索引和插入调用之间的区别
- 28. 下划线_.each和_.map之间的区别是什么?
- 29. {!!之间的区别!!}和{{}}
- 30. “%〜dp0”和“。\”之间的区别?
[当然是](http://en.cppreference.com/w/cpp/container/map/at)... –
@KerrekSB(因为C++ 11)不知道。 –