相关疑难解决方法(0)

STL地图插入效率:[]与插入

地图插入有两种方式:

m[key] = val;
Run Code Online (Sandbox Code Playgroud)

要么

m.insert(make_pair(key, val));
Run Code Online (Sandbox Code Playgroud)

我的问题是,哪个操作更快?人们通常说第一个较慢,因为如果'key'在map中不存在,STL Standard首先'插入'一个默认元素,然后将'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)'

c++ stl insert map std-pair

16
推荐指数
2
解决办法
7788
查看次数

标签 统计

c++ ×1

insert ×1

map ×1

std-pair ×1

stl ×1