1. make_shared 了解过吗?答案:了解过。make_shared 本质上是用来创建 shared_ptr 的工厂函数。和直接 shared_ptr<T>(new T(...)) 相比,它最大的特点是通常会把对象本体和控制块一次性分配在同一块内存里,这样能减少一次堆分配,性能和局部性会更好一些。另外它还能避免像 shared_ptr<T>(new T()) 这种写法在复杂表达式里潜在的异常安全问题,所以在工程里一般更推荐优先用 make_shared。不过它也不是完全替代所有场景。比如对象需要自定义删除器,或者对象内存特别大、希望控制块和对象分离管理时,就不一...