m.insert(std::make_pair(1, 4));
4用于构造A自定义类型,
直接提供4作为参数,此步骤会进行原地构造,只会构造一次。
如果进行
m.insert(std::make_pair(1, A(4));
那么会进行
A临时构建,pair 临时拷贝,pair临时拷贝到m
经历2次拷贝。
所以如果不实现移动构造,那么会非常浪费资源
m.insert(std::make_pair(1, 4));
4用于构造A自定义类型,
直接提供4作为参数,此步骤会进行原地构造,只会构造一次。
如果进行
m.insert(std::make_pair(1, A(4));
那么会进行
A临时构建,pair 临时拷贝,pair临时拷贝到m
经历2次拷贝。
所以如果不实现移动构造,那么会非常浪费资源