STD的差异:UNQuYJPTR和STD::CysDypPTR在C++中 我是C++初学者。我在代码中遇到了std::unique\u ptr和std::shared\u ptr的用法 typedef std::unique_ptr<type1> type1Handler; typedef std::shared_ptr<type2> type2Handler;
我有两个问题: 使用unique_ptr和shared_ptr的优势是什么 它们之间的主要区别是什么?STD的差异:UNQuYJPTR和STD::CysDypPTR在C++中 我是C++初学者。我在代码中遇到了std::unique\u ptr和std::shared\u ptr的用法 typedef std::unique_ptr<type1> type1Handler; typedef std::shared_ptr<type2> type2Handler;,c++,c++11,C++,C++11,我有两个问题: 使用unique_ptr和shared_ptr的优势是什么 它们之间的主要区别是什么? 也许举个例子会很有帮助 它们适用于两个完全不同的用例 std::unique_ptr保留对象的唯一所有权,并在unique_ptr超出范围时销毁该对象。没有两个唯一的\u ptr实例可以管理同一个对象 std::shared_ptr保留对象的共享所有权。多个共享的\u ptr对象可能拥有同一个对象。当拥有该对象的最后一个剩余共享\u ptr被销毁,或者拥有该对象的最后一个剩余共享\u ptr通
也许举个例子会很有帮助 它们适用于两个完全不同的用例 std::unique_ptr保留对象的唯一所有权,并在unique_ptr超出范围时销毁该对象。没有两个唯一的\u ptr实例可以管理同一个对象 std::shared_ptr保留对象的共享所有权。多个共享的\u ptr对象可能拥有同一个对象。当拥有该对象的最后一个剩余共享\u ptr被销毁,或者拥有该对象的最后一个剩余共享\u ptr通过operator=或reset被分配另一个指针时,该对象被销毁,其内存被释放 要强制执行唯一所有权,std::unique_ptr是不可分配和不可复制的。这意味着您必须对其使用移动语义 如果您在代码中的某个地方看到唯一的\u ptr,这意味着看,这是指针,我们拥有它!。这不能说是共享ptr,在共享ptr中,所有权可以分散在代码中。std::unique\u ptr: 标准::共享\u ptr:
你试过谷歌吗?