在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++中+ =和= +之间的区别
- 6. .map(...)和.map {...}在scala之间有什么区别
- 7. C#“var”和C++“auto”之间的区别
- 8. C和C++之间的区别
- 9. 之间的区别:+和:+
- 10. Java和C#和.NET之间的区别
- 11. fmod和%之间的区别
- 12. `%in%`和`==`之间的区别
- 13. ==和case之间的区别?
- 14. std :: map insert()提示位置:C++ 98和C++之间的区别11
- 15. 之间的〜/和的区别../
- 16. c /#和#region之间的区别#
- 17. [abc]和(a | b | c)之间的区别
- 18. Ruby和C之间的主要区别
- 19. VS DataBreakpoints:C和C++之间的区别
- 20. objective-c @“hello”和“hello”之间的区别?
- 21. “ - >”和“。”之间的区别用C
- 22. C和JAVA程序之间的区别
- 23. C++ 11 lambda:transform和for_each之间的区别
- 24. cout和C++之间的区别
- 25. lstat fstat和stat之间的区别C
- 26. Panel和UserControl之间的区别c#
- 27. C++ Builder - Lib和Res之间的区别
- 28. objective-c和java之间的区别
- 29. ASP.Net,C#.Net和VB.Net之间的区别?
- 30. Objective-C(null)和nil之间的区别
[当然是](http://en.cppreference.com/w/cpp/container/map/at)... –
@KerrekSB(因为C++ 11)不知道。 –