前提:
有以下类:
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
方法一
- 1
- 1
输出:(3次构造函数)
A()
A(const A&)
A(const A&)
~A()
~A()
~A()
方法二
- 1
- 1
输出:(3次构造函数)
A()
A(const A&)
A(const A&)
~A()
~A()
~A()
方法三
- 1
- 1
输出:(4次构造函数)
A()
A(const A&)
A(const A&)
A(const A&)
~A()
~A()
~A()
~A()
方法四
- 1
- 1
输出:(4次构造函数,实际上还调用了一次operator=)
A()
A()
A(const A&)
A(const A&)
~A()
~A()
~A()
~A()
方法五
- 1
- 1
输出:(5次构造函数)
A()
A(const A&)
A(const A&)
A(const A&)
A(const A&)
~A()
~A()
~A()
~A()
~A()
总结
很显然:
方法一、二是最优的,成本最少。
方法五是最差的,成本最高。
转自:http://blog.youkuaiyun.com/hisinwang/article/details/45133379
C++ map插入性能对比
本文通过五种不同方法向C++ STL中的map容器插入元素,对比了它们的构造函数调用次数,揭示了不同插入方式对性能的影响,并指出了最优及最差实践。
1747

被折叠的 条评论
为什么被折叠?



