1、make_shared 了解过吗?答案:了解。make_shared 本质上是用来创建 shared_ptr 的工厂函数。和直接 shared_ptr<T>(new T(...)) 相比,它通常只做一次内存分配,把对象本体和控制块放在一块连续内存里,所以性能更好,缓存局部性也更好。另外它异常安全性也更强,像复杂表达式里直接 new 可能在构造 shared_ptr 前抛异常,make_shared 可以避免这种问题。但它也不是所有场景都适合。比如对象特别大、你希望对象和控制块分开释放,或者需要自定义删除器,那就不一定用 make_shared。因为只要还有 weak_ptr 持...