有地图插入的方式有两种:STL地图插件效率:[]对插入
m[key] = val;
或者
m.insert(make_pair(key, val));
我的问题是,其运算速度更快? 人们通常会说第一个比较慢,因为STL标准最初'插入'一个默认元素,如果'key'不存在于map中,然后将'val'赋给默认元素。
但我没有看到第二种方式更好,因为'make_pair'。 make_pair实际上是一个方便的方式,与pair<T1, T2>(key, val)
进行比较。无论如何,他们都做了两个任务,一个是将'key'分配给'pair.first',另外两个是将'val'分配给'pair.second'。配对完成后,map插入由'pair.second'初始化的元素。
所以第一种方式是1“default construct of typeof(val)
” 2.分配 第二种方式是1分配2“copy construct of typeof(val)
”
另请参阅:http://stackoverflow.com/q/1594631/78845 – Johnsyweb 2011-04-17 07:44:13