有地圖插入的方式有兩種: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