v.emplace_back(1, 2) 与 v.push_back(Point(1, 2)) 的区别是?

C++

  1. A.二者生成的代码相同,emplace_back 仅是新名字
  2. B.push_back 更快,因为不做参数转发
  3. C.emplace_back 把参数转发到容器内就地构造,省去临时对象
  4. D.emplace_back 只能用于内置类型,Point 会编译失败