地图插入有两种方式:
m[key] = val;
或者
m.insert(make_pair(key, val));
我的问题是,哪个操作更快?人们通常说第一个比较慢,因为 STL 标准首先在 map 中不存在“key”时“插入”一个默认元素,然后将“val”分配给默认元素。
但我不认为第二种方式更好,因为'make_pair'。与pair<T1, T2>(key, val)
. 无论如何,他们都做了两个任务,一个是将“key”分配给“pair.first”,另一个是将“val”分配给“pair.second”。完成pair后,map插入由'pair.second'初始化的元素。
所以第一种方式是 1.' default construct of typeof(val)
' 2. assignment 第二种方式是 1. assignment 2. ' copy construct of typeof(val)
'