定义　template>　class　unique_ptr;　template　　class　unique_ptr;　std::unique_ptr　是通过　指针占有并管理另一对象　,　并在　unique_ptr　离开作用域时　释放该对象的智能指针。　释放对象的时机->　:　销毁了管理的　unique_ptr　对象　通过　operator=　或reset()　赋值另一指针给管理的　unique_ptr　对象　也可以通过调用　get_deleter()(ptr)　删除对象;　unique_ptr　是可以转义对象的管理权的,但是　被const修饰之后就不能够被转移了　常用的成员函数　函数名字　作用　operator=　赋值　reset　替换被管理对象　swap　交换被管理对象　release　返回被管理对象的指针,并且释放一个对象所有权　get　返回被管理对象的指针　常用的非成员函数　函数名字　作用　make_unique　创建一个管理对象的独占指针　std::swap(std::unique_ptr)　特化　std::swap　算法　示例代码　struct　Base　{　//　创建一个虚函数　virtual　void　bar()　{　std::cout　\n";　{　//　ptr_Derived拥有对象的所有权　auto　ptr_Derived　=　std::make_unique　();　ptr_Derived->val　=　"unique_ptr";　auto　ptr_MoveD　=　std::move(ptr_Derived);　//ptr_Derived　不在拥有对象所有权　assert(!ptr_Derived);　//ptr_Derived为empty　ptr_MoveD->bar();　std::cout　val　\n";　{　std::unique_ptr　p_base　=　std::make_unique();　//　p_base是指向基类的指针,但是占有D的unique_ptr　p_base->bar();　//　这里将调用的Derived的bar函数　std::vector>　v;　//　容器也可以存储unique_ptr对象　v.push_back(std::move(p_base));　v.push_back(std::make_unique