|
|
1
80
首先,
从所有列出的可能性中
三个电话有什么不同?
最后,我会避免使用
|
|
|
2
84
对于C++ 11,您有两个主要的附加选项。首先,你可以使用
这在功能上等同于
但要简洁易懂得多。正如其他答案所指出的,与其他形式相比,这有几个优点:
主要的缺点是,此表单过去要求密钥和值是可复制的,因此它不能用于例如
其次,你可以使用
这比任何形式的
|
|
|
3
9
第一个版本:
可以或不可以将值42插入到映射中。如果钥匙
插入函数:
另一方面,如果钥匙
这三个insert函数几乎相同。
我要用哪一个?我个人更喜欢版本1,它简洁自然。当然,如果不需要它的覆盖行为,那么我更喜欢版本4,因为它比版本2和3需要更少的输入。我不知道有没有
事实上
将键/值对插入到
另一种通过一个构造函数将值插入映射的方法:
|
|
|
4
3
我对上述版本进行了一些时间比较:
结果发现插入版本之间的时间差很小。
这分别给出了版本(我运行了文件3次,因此每个版本有3个连续的时间差):
2198毫秒,2078毫秒,2072毫秒
2290毫秒,2037毫秒,2046毫秒
2592毫秒,2278毫秒,2296毫秒
2234毫秒,2031毫秒,2027毫秒 因此,不同插入版本之间的结果可以忽略(虽然没有进行假设检验)!
这个
|
|
|
5
2
简而言之,
引用的片段来自 有效的STL:提高标准模板库使用效率的50种具体方法 斯科特·迈耶斯说,第24项可能会有帮助。
您可能会决定选择一个通用的无编程版本,但重点是我发现这个范例(区分“add”和“update”)非常有用。 |
|
|
6
1
如果要用键0覆盖元素
否则:
|
|
|
7
1
如果要在std::map-use insert()函数中插入元素,如果要查找元素(按键)并为其分配一些元素,请使用operator[]。 为了简化插入,请使用boost::assign library,如下所示:
|
|
8
1
我只是稍微改变一下这个问题(字符串映射)来表示对insert的另一个兴趣:
编译器在“rancking[1]=42;”上没有显示错误这一事实可能会产生毁灭性的影响! |
|
|
9
0
自从
C++17
|
|
|
Mayank Jain · std::对中的常量转换 9 年前 |
|
Jonathan Mee · 为什么我不能用make_pair打领带? 9 年前 |
|
|
warwcat · 访问非零元素但输出为零的向量 10 年前 |
|
|
Hassan Jalil · std::pair vs Array 11 年前 |
|
|
Oliver · 如何实现自定义模板排序功能? 12 年前 |