C++STL:向map中添加元素的方法对比
来源:互联网 发布:淘宝淘管家在哪里找到 编辑:程序博客网 时间:2024/05/06 04:17
前提:
有以下类:
class A{public: A() { cout << "A()" << endl; } A(const A& rhs) { cout << "A(const A&)" << endl; } ~A() { cout << "~A()" << endl; }};map<int, A> mapTest;
方法一
mapTest.insert(map<int, A>::value_type(0, a));
输出:(3次构造函数)
A()
A(const A&)
A(const A&)
~A()
~A()
~A()
方法二
mapTest.insert(pair<const int, A>(0, a));
输出:(3次构造函数)
A()
A(const A&)
A(const A&)
~A()
~A()
~A()
方法三
mapTest.insert(pair<int, A>(0, a));
输出:(4次构造函数)
A()
A(const A&)
A(const A&)
A(const A&)
~A()
~A()
~A()
~A()
方法四
mapTest[0] = a;
输出:(4次构造函数,实际上还调用了一次operator=)
A()
A()
A(const A&)
A(const A&)
~A()
~A()
~A()
~A()
方法五
mapTest.insert(make_pair(0, a));
输出:(5次构造函数)
A()
A(const A&)
A(const A&)
A(const A&)
A(const A&)
~A()
~A()
~A()
~A()
~A()
总结
很显然:
方法一、二是最优的,成本最少。
方法五是最差的,成本最高。
0 0
- C++STL:向map中添加元素的方法对比
- C++中map元素添加的方法
- c#中向listbox添加大量元素的快速方法
- TreeSet方法之一 向TreeSet中添加的元素
- 向集合中一次性添加一组元素的方法
- STL中map容器的元素插入
- 向Panel中动态添加文本框的方法 (C#)
- js向数组和map添加元素
- [C++]STL中map的用法
- 【C++】STL中map的详细使用说明
- 几种向数组中添加元素方法的性能比较
- stl find_if在map中查找元素的应用
- [STL] 从map中删除指定value的元素
- STL中map/vector的删除元素操作
- 遍历删除map中元素的方法
- jQuery向某个元素中添加元素
- [面试] C++ STL(一)—— 向一个vector中添加N个元素,平均的添加的性能是?
- C++STL:移除map中的元素
- Solr学习笔记(五)——使用Facet实现自动完成
- c知识点总结
- 接收一个未知长度的字符串(人为输入,长度不定)
- 通俗理解LDA主题模型
- 再谈javascript面向对象编程
- C++STL:向map中添加元素的方法对比
- Android 编程下 px - dp 的相互转换
- unity5 新的全局光照系统,移动设备可用部分
- 第10题
- 枚举算法
- 第二章习题
- 黑马程序员-----异常
- 《C++编程》第3章第10题
- Javascript 装载和执行